Password impl, various enhancements
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.ria / src / argeo-ria-lib / security / class / org / argeo / security / ria / components / PasswordCredentialImpl.js
index 610e56d12e7837d0b8d004e93d77d18187e39f02..238cc7ef106d6e1be77eaa5ebfd90a1f52535a1a 100644 (file)
@@ -7,6 +7,13 @@ qx.Class.define("org.argeo.security.ria.components.PasswordCredentialImpl", {
        properties : {\r
                valid : {\r
                        init : false\r
+               },\r
+               encoderCallback : {\r
+                       init : function(string){\r
+                               var encoderShort = org.argeo.ria.util.Encoder;\r
+                               return "{SHA}"+encoderShort.base64Encode(encoderShort.hexDecode(encoderShort.hash(string, "sha1")));\r
+                       },\r
+                       check : "Function"\r
                }\r
        },\r
        \r
@@ -28,15 +35,26 @@ qx.Class.define("org.argeo.security.ria.components.PasswordCredentialImpl", {
                getContainer  : function(){\r
                        return this;\r
                },\r
-               getData    : function(format){return true;},\r
+               getData : function(format){\r
+                       var encoded = null;\r
+                       if(this.pass1.getValue() != ""){\r
+                               var encoder = this.getEncoderCallback();\r
+                               encoded = encoder(this.pass1.getValue()); \r
+                       }\r
+                       return encoded;\r
+               },\r
+               clear : function(){\r
+                       this.pass1.setValue("");\r
+                       this.pass2.setValue("");                        \r
+               },\r
                validate : function(){\r
-                       if(this.pass1.getValue() == this.pass2.getValue()){\r
-                               this.setValid(true);\r
-                       }else{\r
+                       if(this.pass1.getValue() != this.pass2.getValue() || this.pass1.getValue() == ""){\r
                                // TODO WHEN TESTING 0.8.3\r
                                //this.pass1.setValid(false);\r
                                //this.pass2.setValid(false); \r
                                this.setValid(false);\r
+                       }else{\r
+                               this.setValid(true);\r
                        }\r
                        return this.getValid();\r
                },\r