--- a/libs/internals/setting.cpp
+++ b/libs/internals/setting.cpp
@@ -179,7 +179,7 @@
return false;
}
-QStringList Setting::needSecrets() const
+QStringList Setting::needSecrets(const bool /*requestNew*/) const
{
return QStringList();
}
--- a/libs/internals/setting.h
+++ b/libs/internals/setting.h
@@ -48,7 +48,7 @@
virtual bool hasVolatileSecrets() const { return false; }
virtual QMap<QString,QString> secretsToMap() const;
virtual void secretsFromMap(QMap<QString,QString>);
- virtual QStringList needSecrets() const;
+ virtual QStringList needSecrets(const bool requestNew = false) const;
virtual bool hasPersistentSecrets() const;
bool secretsAvailable() const;
void setSecretsAvailable(bool secretsAvailable);
--- a/libs/internals/settings/802-11-wireless-security.cpp
+++ b/libs/internals/settings/802-11-wireless-security.cpp
@@ -111,7 +111,7 @@
setSecretsAvailable(secretsAvailable);
}
-QStringList WirelessSecuritySetting::needSecrets() const
+QStringList WirelessSecuritySetting::needSecrets(const bool requestNew) const
{
QStringList list;
switch (securityType())
@@ -124,19 +124,19 @@
switch (weptxkeyindex())
{
case 0:
- if (wepkey0().isEmpty())
+ if ((wepkey0().isEmpty() || requestNew))
list.append("wepkey0");
break;
case 1:
- if (wepkey1().isEmpty())
+ if ((wepkey1().isEmpty() || requestNew))
list.append("wepkey1");
break;
case 2:
- if (wepkey2().isEmpty())
+ if ((wepkey2().isEmpty() || requestNew))
list.append("wepkey2");
break;
case 3:
- if (wepkey3().isEmpty())
+ if ((wepkey3().isEmpty() || requestNew))
list.append("wepkey3");
break;
}
@@ -145,11 +145,11 @@
break;
case WirelessSecuritySetting::EnumSecurityType::WpaPsk:
case WirelessSecuritySetting::EnumSecurityType::Wpa2Psk:
- if (psk().isEmpty() && !pskflags().testFlag(Setting::NotRequired))
+ if ((psk().isEmpty() || requestNew) && !pskflags().testFlag(Setting::NotRequired))
list.append("psk");
break;
case WirelessSecuritySetting::EnumSecurityType::Leap:
- if (leappassword().isEmpty() && !leappasswordflags().testFlag(Setting::NotRequired))
+ if ((leappassword().isEmpty() || requestNew) && !leappasswordflags().testFlag(Setting::NotRequired))
list.append("leappassword");
break;
}
--- a/libs/internals/settings/802-11-wireless-security.h
+++ b/libs/internals/settings/802-11-wireless-security.h
@@ -41,7 +41,7 @@
QMap<QString,QString> secretsToMap() const;
void secretsFromMap(QMap<QString,QString> secrets);
- QStringList needSecrets() const;
+ QStringList needSecrets(const bool requestNew = false) const;
bool hasPersistentSecrets() const;
/**
--- a/libs/internals/settings/802-1x.cpp
+++ b/libs/internals/settings/802-1x.cpp
@@ -88,18 +88,18 @@
setPhase2privatekeypassword(secrets.value("phase2-private-key-password"));
}
-QStringList Security8021xSetting::needSecrets() const
+QStringList Security8021xSetting::needSecrets(const bool requestNew) const
{
QStringList list;
if (enabled()) {
Security8021xSetting::EapMethods eap = eapFlags();
- if (eap.testFlag(Security8021xSetting::tls) && privatekeypassword().isEmpty() && !privatekeypasswordflags().testFlag(Setting::NotRequired)) {
+ if (eap.testFlag(Security8021xSetting::tls) && (privatekeypassword().isEmpty() || requestNew) && !privatekeypasswordflags().testFlag(Setting::NotRequired)) {
list.append("private-key-password");
} else if ((eap.testFlag(Security8021xSetting::peap) || eap.testFlag(Security8021xSetting::ttls) || eap.testFlag(Security8021xSetting::leap))
- && password().isEmpty() && !passwordflags().testFlag(Setting::NotRequired)) {
+ && (password().isEmpty() || requestNew) && !passwordflags().testFlag(Setting::NotRequired)) {
list.append("password");
}
- if ((phase2auth() == EnumPhase2auth::tls || phase2autheap() == EnumPhase2autheap::tls) && phase2privatekeypassword().isEmpty()
+ if ((phase2auth() == EnumPhase2auth::tls || phase2autheap() == EnumPhase2autheap::tls) && (phase2privatekeypassword().isEmpty() || requestNew)
&& !phase2privatekeypasswordflags().testFlag(Setting::NotRequired)) {
list.append("phase2-private-key-password");
}
--- a/libs/internals/settings/802-1x.h
+++ b/libs/internals/settings/802-1x.h
@@ -43,7 +43,7 @@
QMap<QString,QString> secretsToMap() const;
void secretsFromMap(QMap<QString,QString> secrets);
- QStringList needSecrets() const;
+ QStringList needSecrets(const bool requestNew = false) const;
bool hasPersistentSecrets() const;
/**
--- a/libs/internals/settings/cdma.cpp
+++ b/libs/internals/settings/cdma.cpp
@@ -40,10 +40,10 @@
setPassword(secrets.value("password"));
}
-QStringList CdmaSetting::needSecrets() const
+QStringList CdmaSetting::needSecrets(const bool requestNew) const
{
QStringList list;
- if (password().isEmpty() && !passwordflags().testFlag(Setting::NotRequired))
+ if ((password().isEmpty() || requestNew) && !passwordflags().testFlag(Setting::NotRequired))
list.append("password");
return list;
}
--- a/libs/internals/settings/cdma.h
+++ b/libs/internals/settings/cdma.h
@@ -22,7 +22,7 @@
QMap<QString,QString> secretsToMap() const;
void secretsFromMap(QMap<QString,QString> secrets);
- QStringList needSecrets() const;
+ QStringList needSecrets(const bool requestNew = false) const;
bool hasPersistentSecrets() const;
/**
--- a/libs/internals/settings/gsm.cpp
+++ b/libs/internals/settings/gsm.cpp
@@ -51,12 +51,12 @@
setPin(secrets.value("pin"));
}
-QStringList GsmSetting::needSecrets() const
+QStringList GsmSetting::needSecrets(const bool requestNew) const
{
QStringList list;
- if (password().isEmpty() && !passwordflags().testFlag(Setting::NotRequired))
+ if ((password().isEmpty() || requestNew) && !passwordflags().testFlag(Setting::NotRequired))
list.append("password");
- if (pin().isEmpty() && !pinflags().testFlag(Setting::NotRequired))
+ if ((pin().isEmpty() || requestNew) && !pinflags().testFlag(Setting::NotRequired))
list.append("pin");
return list;
}
--- a/libs/internals/settings/gsm.h
+++ b/libs/internals/settings/gsm.h
@@ -22,7 +22,7 @@
QMap<QString,QString> secretsToMap() const;
void secretsFromMap(QMap<QString,QString> secrets);
- QStringList needSecrets() const;
+ QStringList needSecrets(const bool requestNew = false) const;
bool hasPersistentSecrets() const;
/**
--- a/libs/internals/settings/pppoe.cpp
+++ b/libs/internals/settings/pppoe.cpp
@@ -40,10 +40,10 @@
setPassword(secrets.value("password"));
}
-QStringList PppoeSetting::needSecrets() const
+QStringList PppoeSetting::needSecrets(const bool requestNew) const
{
QStringList list;
- if (password().isEmpty() && !passwordflags().testFlag(Setting::NotRequired))
+ if ((password().isEmpty() || requestNew) && !passwordflags().testFlag(Setting::NotRequired))
list.append("password");
return list;
}
--- a/libs/internals/settings/pppoe.h
+++ b/libs/internals/settings/pppoe.h
@@ -22,7 +22,7 @@
QMap<QString,QString> secretsToMap() const;
void secretsFromMap(QMap<QString,QString> secrets);
- QStringList needSecrets() const;
+ QStringList needSecrets(const bool requestNew = false) const;
bool hasPersistentSecrets() const;
/**
--- a/libs/internals/settings/vpn.cpp
+++ b/libs/internals/settings/vpn.cpp
@@ -122,7 +122,7 @@
setSecretsAvailable(true);
}
-QStringList VpnSetting::needSecrets() const
+QStringList VpnSetting::needSecrets(const bool /*requestNew*/) const
{
// VPN is a bit different from other connection types. We do not need to list the secrets we need,
// but this list cannot be empty or SecretStorage will not ask for the secrets.
--- a/libs/internals/settings/vpn.h
+++ b/libs/internals/settings/vpn.h
@@ -28,7 +28,7 @@
static QVariantMap variantMapFromStringList(const QStringList & list);
static QStringMap stringMapFromStringList(const QStringList & list);
static QStringList stringMapToStringList(const QStringMap & map);
- QStringList needSecrets() const;
+ QStringList needSecrets(const bool requestNew = false) const;
bool hasPersistentSecrets() const;
/**