Modify identity selection logic / fix bugs
[moonshot-ui.git] / src / moonshot-id.vala
index f783810..8f90e8d 100644 (file)
@@ -21,19 +21,37 @@ public class IdCard : Object
   public string display_name { get; set; default = ""; }
   
   public string username { get; set; default = ""; }
+#if GNOME_KEYRING
+  private unowned string _password;
+  public string password {
+    get {
+      return (_password!=null) ? _password : "";
+    }
+    set {
+      if (_password != null) {
+        GnomeKeyring.memory_free((void *)_password);
+        _password = null;
+      }
+      if (value != null)
+        _password = GnomeKeyring.memory_strdup(value); 
+    }
+  }
+#else
   public string password { get; set; default = null; }
+#endif
 
   public string issuer { get; set; default = ""; }
   
   public Rule[] rules {get; set; default = {};}
   public string[] services { get; set; default = {}; }
+  public bool temporary {get; set; default = false; }
 
   public TrustAnchor trust_anchor  { get; set; default = new TrustAnchor (); }
   
-  public Gdk.Pixbuf pixbuf { get; set; default = null; }    
-
   public unowned string nai { get {  _nai = username + "@" + issuer; return _nai;}}
 
+  public bool store_password { get; set; default = false; }
+
   public bool IsNoIdentity() 
   {
     return (display_name == NO_IDENTITY);
@@ -45,4 +63,8 @@ public class IdCard : Object
     card.display_name = NO_IDENTITY;
     return card;
   }
+
+  ~IdCard() {
+    password = null;
+  }
 }