summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Berg <bberg@redhat.com>2021-01-14 17:17:42 +0100
committerBenjamin Berg <bberg@redhat.com>2021-01-14 17:17:42 +0100
commit5691b3acc41d6152b9c941cbc3b1a652236bf07c (patch)
tree64ab17459d51383f594a608323603f469f7c18d0
parent4a7326f37e9498568a3f14c0eb8c5309e677c9a8 (diff)
downloadgnome-control-center-benzea/fix-password-validation.tar.gz
network: Accept empty passwords if it is not savedbenzea/fix-password-validation
In that case, NM will use gnome-shell to prompt for the password. As such, the form should validate no matter what password is set.
-rw-r--r--panels/network/wireless-security/eap-method-leap.c7
-rw-r--r--panels/network/wireless-security/eap-method-tls.c4
-rw-r--r--panels/network/wireless-security/ws-leap.c7
-rw-r--r--panels/network/wireless-security/ws-sae.c8
-rw-r--r--panels/network/wireless-security/ws-wep-key.c7
-rw-r--r--panels/network/wireless-security/ws-wpa-psk.c7
6 files changed, 40 insertions, 0 deletions
diff --git a/panels/network/wireless-security/eap-method-leap.c b/panels/network/wireless-security/eap-method-leap.c
index f7b69b4d8..d218ade19 100644
--- a/panels/network/wireless-security/eap-method-leap.c
+++ b/panels/network/wireless-security/eap-method-leap.c
@@ -55,6 +55,7 @@ static gboolean
validate (EAPMethod *parent, GError **error)
{
EAPMethodLEAP *self = (EAPMethodLEAP *)parent;
+ NMSettingSecretFlags secret_flags;
const char *text;
gboolean ret = TRUE;
@@ -66,6 +67,12 @@ validate (EAPMethod *parent, GError **error)
} else
widget_unset_error (GTK_WIDGET (self->username_entry));
+ secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (self->password_entry));
+ if (secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED) {
+ widget_unset_error (GTK_WIDGET (self->password_entry));
+ return TRUE;
+ }
+
text = gtk_entry_get_text (self->password_entry);
if (!text || !strlen (text)) {
widget_set_error (GTK_WIDGET (self->password_entry));
diff --git a/panels/network/wireless-security/eap-method-tls.c b/panels/network/wireless-security/eap-method-tls.c
index 1e0d6f377..fb039d740 100644
--- a/panels/network/wireless-security/eap-method-tls.c
+++ b/panels/network/wireless-security/eap-method-tls.c
@@ -79,6 +79,7 @@ validate (EAPMethod *method, GError **error)
{
EAPMethodTLS *self = EAP_METHOD_TLS (method);
NMSetting8021xCKFormat format = NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
+ NMSettingSecretFlags secret_flags;
const char *password, *identity;
g_autoptr(GError) ca_cert_error = NULL;
g_autoptr(GError) private_key_error = NULL;
@@ -115,6 +116,9 @@ validate (EAPMethod *method, GError **error)
}
password = gtk_entry_get_text (self->private_key_password_entry);
+ secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (self->private_key_password_entry));
+ if (secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED)
+ password = NULL;
if (!eap_method_validate_filepicker (GTK_FILE_CHOOSER (self->private_key_button),
TYPE_PRIVATE_KEY,
diff --git a/panels/network/wireless-security/ws-leap.c b/panels/network/wireless-security/ws-leap.c
index a3391ec5e..464f92831 100644
--- a/panels/network/wireless-security/ws-leap.c
+++ b/panels/network/wireless-security/ws-leap.c
@@ -56,6 +56,7 @@ static gboolean
validate (WirelessSecurity *security, GError **error)
{
WirelessSecurityLEAP *self = WS_LEAP (security);
+ NMSettingSecretFlags secret_flags;
const char *text;
gboolean ret = TRUE;
@@ -67,6 +68,12 @@ validate (WirelessSecurity *security, GError **error)
} else
widget_unset_error (GTK_WIDGET (self->username_entry));
+ secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (self->password_entry));
+ if (secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED) {
+ widget_unset_error (GTK_WIDGET (self->password_entry));
+ return TRUE;
+ }
+
text = gtk_entry_get_text (self->password_entry);
if (!text || !strlen (text)) {
widget_set_error (GTK_WIDGET (self->password_entry));
diff --git a/panels/network/wireless-security/ws-sae.c b/panels/network/wireless-security/ws-sae.c
index 6f451cdba..89017ad6a 100644
--- a/panels/network/wireless-security/ws-sae.c
+++ b/panels/network/wireless-security/ws-sae.c
@@ -59,8 +59,16 @@ static gboolean
validate (WirelessSecurity *security, GError **error)
{
WirelessSecuritySAE *self = WS_SAE (security);
+ NMSettingSecretFlags secret_flags;
const char *key;
+ secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (self->password_entry));
+ if (secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED)
+ {
+ widget_unset_error (GTK_WIDGET (self->password_entry));
+ return TRUE;
+ }
+
key = gtk_entry_get_text (self->password_entry);
if (key == NULL || key[0] == '\0')
diff --git a/panels/network/wireless-security/ws-wep-key.c b/panels/network/wireless-security/ws-wep-key.c
index ba09a689d..006ecedae 100644
--- a/panels/network/wireless-security/ws-wep-key.c
+++ b/panels/network/wireless-security/ws-wep-key.c
@@ -98,9 +98,16 @@ static gboolean
validate (WirelessSecurity *security, GError **error)
{
WirelessSecurityWEPKey *self = WS_WEP_KEY (security);
+ NMSettingSecretFlags secret_flags;
const char *key;
int i;
+ secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (self->key_entry));
+ if (secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED) {
+ widget_unset_error (GTK_WIDGET (self->key_entry));
+ return TRUE;
+ }
+
key = gtk_entry_get_text (self->key_entry);
if (!key) {
widget_set_error (GTK_WIDGET (self->key_entry));
diff --git a/panels/network/wireless-security/ws-wpa-psk.c b/panels/network/wireless-security/ws-wpa-psk.c
index 653b5ffc7..978488b7e 100644
--- a/panels/network/wireless-security/ws-wpa-psk.c
+++ b/panels/network/wireless-security/ws-wpa-psk.c
@@ -59,10 +59,17 @@ static gboolean
validate (WirelessSecurity *security, GError **error)
{
WirelessSecurityWPAPSK *self = WS_WPA_PSK (security);
+ NMSettingSecretFlags secret_flags;
const char *key;
gsize len;
int i;
+ secret_flags = nma_utils_menu_to_secret_flags (GTK_WIDGET (self->password_entry));
+ if (secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED) {
+ widget_unset_error (GTK_WIDGET (self->password_entry));
+ return TRUE;
+ }
+
key = gtk_entry_get_text (self->password_entry);
len = key ? strlen (key) : 0;
if ((len < 8) || (len > 64)) {