[libnma/lr-no-passwd] cert-chooser: add NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS




commit e15817aa2367b3a088ba19d84e1878d35671c2ce
Author: Lubomir Rintel <lkundrak v3 sk>
Date:   Mon Jan 17 09:21:43 2022 +0100

    cert-chooser: add NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS
    
    Some VPN plugins want certificates, but not support password protected
    ones.

 src/nma-cert-chooser.c   | 10 +++++++++-
 src/nma-cert-chooser.h   | 10 ++++++----
 src/tests/cert-chooser.c |  4 ++++
 3 files changed, 19 insertions(+), 5 deletions(-)
---
diff --git a/src/nma-cert-chooser.c b/src/nma-cert-chooser.c
index 8eec3301..2184ba56 100644
--- a/src/nma-cert-chooser.c
+++ b/src/nma-cert-chooser.c
@@ -930,6 +930,14 @@ constructed (GObject *object)
                gtk_widget_hide (priv->cert_password);
                gtk_widget_hide (priv->cert_password_label);
        }
+
+       if (priv->flags & NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS) {
+               gtk_widget_hide (priv->cert_password);
+               gtk_widget_hide (priv->cert_password_label);
+               gtk_widget_hide (priv->key_password);
+               gtk_widget_hide (priv->key_password_label);
+               gtk_widget_hide (priv->show_password);
+       }
 }
 
 static void
@@ -1004,7 +1012,7 @@ nma_cert_chooser_class_init (NMACertChooserClass *klass)
                                                    NMA_CERT_CHOOSER_FLAG_NONE,
                                                      NMA_CERT_CHOOSER_FLAG_CERT
                                                    | NMA_CERT_CHOOSER_FLAG_PASSWORDS
-                                                   | NMA_CERT_CHOOSER_FLAG_PEM,
+                                                   | (2*NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS-1),
                                                    NMA_CERT_CHOOSER_FLAG_NONE,
                                                      G_PARAM_WRITABLE
                                                    | G_PARAM_CONSTRUCT_ONLY
diff --git a/src/nma-cert-chooser.h b/src/nma-cert-chooser.h
index c4c0ad54..c0aa4244 100644
--- a/src/nma-cert-chooser.h
+++ b/src/nma-cert-chooser.h
@@ -22,6 +22,7 @@ G_BEGIN_DECLS
  * @NMA_CERT_CHOOSER_FLAG_CERT: Only pick a certificate, not a key
  * @NMA_CERT_CHOOSER_FLAG_PASSWORDS: Hide all controls but the secrets entries
  * @NMA_CERT_CHOOSER_FLAG_PEM: Ensure the chooser only selects regular PEM files
+ * @NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS: Do not show password entries
  *
  * Flags that controls what is the certificate chooser button able to pick.
  * Currently only local files are supported, but might be extended to use URIs,
@@ -31,10 +32,11 @@ G_BEGIN_DECLS
  */
 NMA_AVAILABLE_IN_1_8
 typedef enum {
-       NMA_CERT_CHOOSER_FLAG_NONE      = 0x0,
-       NMA_CERT_CHOOSER_FLAG_CERT      = 0x1,
-       NMA_CERT_CHOOSER_FLAG_PASSWORDS = 0x2,
-       NMA_CERT_CHOOSER_FLAG_PEM       = 0x4,
+       NMA_CERT_CHOOSER_FLAG_NONE         = 0x00,
+       NMA_CERT_CHOOSER_FLAG_CERT         = 0x01,
+       NMA_CERT_CHOOSER_FLAG_PASSWORDS    = 0x02,
+       NMA_CERT_CHOOSER_FLAG_PEM          = 0x04,
+       NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS = 0x10,
 } NMACertChooserFlags;
 
 #define NMA_TYPE_CERT_CHOOSER                   (nma_cert_chooser_get_type ())
diff --git a/src/tests/cert-chooser.c b/src/tests/cert-chooser.c
index 5ee251b7..c5e5649d 100644
--- a/src/tests/cert-chooser.c
+++ b/src/tests/cert-chooser.c
@@ -72,6 +72,10 @@ main (int argc, char *argv[])
        gtk_widget_show (widget);
        gtk_box_append (content, widget);
 
+       widget = nma_cert_chooser_new ("FLAG_NO_PASSWORDS", NMA_CERT_CHOOSER_FLAG_NO_PASSWORDS);
+       gtk_widget_show (widget);
+       gtk_box_append (content, widget);
+
        loop = g_main_loop_new (NULL, FALSE);
        g_signal_connect_swapped (dialog, "response", G_CALLBACK (g_main_loop_quit), loop);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]