summaryrefslogtreecommitdiff
path: root/src/wireless-security/ws-leap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wireless-security/ws-leap.c')
-rw-r--r--src/wireless-security/ws-leap.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/wireless-security/ws-leap.c b/src/wireless-security/ws-leap.c
index 0d2ce75b..49294f22 100644
--- a/src/wireless-security/ws-leap.c
+++ b/src/wireless-security/ws-leap.c
@@ -52,6 +52,7 @@ static gboolean
validate (WirelessSecurity *parent, GError **error)
{
GtkWidget *entry;
+ NMSettingSecretFlags secret_flags;
const char *text;
gboolean ret = TRUE;
@@ -67,15 +68,21 @@ validate (WirelessSecurity *parent, GError **error)
entry = GTK_WIDGET (gtk_builder_get_object (parent->builder, "leap_password_entry"));
g_assert (entry);
+
+ secret_flags = nma_utils_menu_to_secret_flags (entry);
text = gtk_entry_get_text (GTK_ENTRY (entry));
- if (!text || !strlen (text)) {
+
+ if ( secret_flags & NM_SETTING_SECRET_FLAG_NOT_SAVED
+ || secret_flags & NM_SETTING_SECRET_FLAG_NOT_REQUIRED
+ || (text && strlen (text))) {
+ widget_unset_error (entry);
+ } else {
widget_set_error (entry);
if (ret) {
g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("missing leap-password"));
ret = FALSE;
}
- } else
- widget_unset_error (entry);
+ }
return ret;
}