diff --git a/kded/secretagent.cpp b/kded/secretagent.cpp --- a/kded/secretagent.cpp +++ b/kded/secretagent.cpp @@ -25,6 +25,8 @@ #include "debug.h" +#include "configuration.h" + #include #include #include @@ -404,7 +406,10 @@ } } - if (requestNew || (allowInteraction && !setting->needSecrets(requestNew).isEmpty()) || (allowInteraction && userRequested) || (isVpn && allowInteraction)) { + if (!Configuration::showPasswordDialog()) { + sendError(SecretAgent::NoSecrets, "Cannot authenticate", request.message); + return true; + } else if (requestNew || (allowInteraction && !setting->needSecrets(requestNew).isEmpty()) || (allowInteraction && userRequested) || (isVpn && allowInteraction)) { m_dialog = new PasswordDialog(connectionSettings, request.flags, request.setting_name); connect(m_dialog, &PasswordDialog::accepted, this, &SecretAgent::dialogAccepted); connect(m_dialog, &PasswordDialog::rejected, this, &SecretAgent::dialogRejected); diff --git a/libs/configuration.h b/libs/configuration.h --- a/libs/configuration.h +++ b/libs/configuration.h @@ -29,13 +29,17 @@ { Q_PROPERTY(bool unlockModemOnDetection READ unlockModemOnDetection WRITE setUnlockModemOnDetection) Q_PROPERTY(bool manageVirtualConnections READ manageVirtualConnections WRITE setManageVirtualConnections) + //Readonly constant property, as this value should only be set by the platform + Q_PROPERTY(bool showPasswordDialog READ showPasswordDialog CONSTANT) Q_OBJECT public: static bool unlockModemOnDetection(); static void setUnlockModemOnDetection(bool unlock); static bool manageVirtualConnections(); static void setManageVirtualConnections(bool manage); + + static bool showPasswordDialog(); }; #endif // PLAMA_NM_CONFIGURATION_H diff --git a/libs/configuration.cpp b/libs/configuration.cpp --- a/libs/configuration.cpp +++ b/libs/configuration.cpp @@ -66,3 +66,16 @@ grp.writeEntry(QLatin1String("ManageVirtualConnections"), manage); } } + +bool Configuration::showPasswordDialog() +{ + KSharedConfigPtr config = KSharedConfig::openConfig(QLatin1String("plasma-nm")); + KConfigGroup grp(config, QLatin1String("General")); + + if (grp.isValid()) { + return grp.readEntry(QLatin1String("ShowPasswordDialog"), true); + } + + return true; +} +