Password impl, various enhancements
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.ria / src / argeo-ria-lib / security / class / org / argeo / security / ria / model / User.js
index 4595fbcb5b103829aa9487fff848afbe0253eb10..c3f46970d5f07dfe2571726a46fa8996f2d76d67 100644 (file)
@@ -5,6 +5,10 @@ qx.Class.define("org.argeo.security.ria.model.User", {
                        init : "",\r
                        check : "String"\r
                },\r
+               password : {\r
+                       nullable : true,\r
+                       check : "String"\r
+               },\r
                roles : {\r
                        check : "Array"\r
                },\r
@@ -13,33 +17,44 @@ qx.Class.define("org.argeo.security.ria.model.User", {
                },\r
                rawData : {\r
                        \r
+               },\r
+               create : {\r
+                       check : "Boolean",\r
+                       init : true\r
                }\r
        },\r
        construct : function(){\r
                this.base(arguments);\r
                this.setRoles([]);\r
                this.setNatures([]);\r
+               this.setRawData({password:null});\r
        },\r
        members : {\r
                load : function(data, format){\r
+                       this.setCreate(false);\r
                        this.setName(data.username);\r
                        this.setRoles(data.roles);\r
                        this.setNatures(data.userNatures);\r
                        this.setRawData(data);\r
                },\r
                getSaveService : function(){\r
-                       var userService = org.argeo.security.ria.SecurityAPI.getUpdateUserService(this.toJSON());\r
+                       if(this.isCreate()){\r
+                               var userService = org.argeo.security.ria.SecurityAPI.getCreateUserService(this.toJSON(true));                   \r
+                       }else{\r
+                               var userService = org.argeo.security.ria.SecurityAPI.getUpdateUserService(this.toJSON());                               \r
+                       }\r
                        userService.addListener("completed", function(response){\r
                                if(!response || !response.username) return;\r
                                this.load(response.getContent(), "json");\r
                        }, this);\r
                        return userService;                     \r
                },\r
-               toJSON : function(){\r
+               toJSON : function(create){\r
                        var rawData = this.getRawData();\r
                        rawData.username = this.getName();\r
                        rawData.roles = this.getRoles();\r
                        rawData.userNatures = this.getNatures();\r
+                       if(create) rawData.password = this.getPassword();\r
                        return rawData;\r
                },\r
                _getNatureByType : function(natureType){\r