Data Model and API
authorCharles du Jeu <charles.dujeu@gmail.com>
Thu, 17 Sep 2009 17:16:42 +0000 (17:16 +0000)
committerCharles du Jeu <charles.dujeu@gmail.com>
Thu, 17 Sep 2009 17:16:42 +0000 (17:16 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@2953 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/SecurityAPI.js [new file with mode: 0644]
security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/model/Nature.js [new file with mode: 0644]
security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/model/User.js [new file with mode: 0644]

diff --git a/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/SecurityAPI.js b/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/SecurityAPI.js
new file mode 100644 (file)
index 0000000..e4f3e84
--- /dev/null
@@ -0,0 +1,190 @@
+qx.Class.define("org.argeo.security.ria.SecurityAPI", {\r
+       extend : qx.core.Object,\r
+       statics : {\r
+               \r
+               DEFAULT_CONTEXT : "org.argeo.security.ria",\r
+               \r
+               USERS_LIST_SERVICE : "getUsersList.security",\r
+               USER_EXISTS_SERVICE : "userExists.security",            \r
+               DELETE_USER_SERVICE : "deleteUser.security",\r
+               GET_USER_DETAILS_SERVICE : "getUserDetails.security",\r
+               CREATE_USER_SERVICE : "createUser.security",\r
+               UPDATE_USER_PASS_SERVICE : "updateUserPassword.security",\r
+\r
+               ROLES_LIST_SERVICE : "getRolesList.security",\r
+               GET_USERS_ROLE_SERVICE : "getUsersForRole.security",\r
+               CREATE_ROLE_SERVICE : "createRole.security",\r
+               DELETE_ROLE_SERVICE : "deleteRole.security",\r
+               \r
+               UPDATE_USER_ROLE_LNK_SERVICE : "updateUserRoleLink.security",\r
+               CREATE_NATURE_SERVICE : "createUserNature.security",\r
+               DELETE_NATURE_SERVICE : "deleteUserNature.security",\r
+               UPDATE_NATURE_SERVICE : "updateUserNature.security",\r
+\r
+               /**\r
+                * Standard Request getter\r
+                * @param serviceName {String} The name of the service to call (without base context)\r
+                * @param fireReloadEventType {String} Whether query should trigger a ReloadEvent\r
+                * @param iLoadStatusables {org.argeo.ria.components.ILoadStatusables[]} Gui parts to update\r
+                * @return {qx.io.remote.Request}\r
+                */\r
+               getServiceRequest : function(serviceName) {\r
+                       var serviceManager = org.argeo.ria.remote.RequestManager.getInstance();\r
+                       return serviceManager.getRequest(\r
+                               org.argeo.slc.ria.SlcApi.DEFAULT_CONTEXT + "/" + serviceName, \r
+                               "GET",\r
+                               "application/json");\r
+               },\r
+               \r
+               parseOptionalArguments : function(request, argumentsArray, startIndex){\r
+                       if(argumentsArray.length <= startIndex) return;\r
+                       var serviceManager = org.argeo.ria.remote.RequestManager.getInstance();\r
+                       for(var i=startIndex;i<argumentsArray.length;i++){\r
+                               var argument = argumentsArray[i];\r
+                               if(qx.lang.Array.isArray(argument)){\r
+                                       serviceManager.attachILoadStatusables(request, argument);\r
+                               }else if(typeof argument == "string"){\r
+                                       serviceManager.attachReloadEventType(request, argument);\r
+                               }\r
+                       }\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getListUsersService : function(){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.USERS_LIST_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getUserExistsService : function(userName){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.USER_EXISTS_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       req.addParameter("userName", userName);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getDeleteUserService : function(userName){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.DELETE_USER_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       req.addParameter("userName", userName);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getUserDetailsService : function(userName){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.GET_USER_DETAILS_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       req.addParameter("userName", userName);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getCreateUserService : function(userName){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.CREATE_USER_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       req.addParameter("userName", userName);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getUpdateUserPassService : function(userName, userPassword){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.UPDATE_USER_PASS_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       req.addParameter("userName", userName);\r
+                       req.addParameter("userPassword", userPassword);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getListRolesService : function(){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.ROLES_LIST_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getUsersForRolesService : function(){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.GET_USERS_ROLE_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getCreateRoleService : function(roleName){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.CREATE_ROLE_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getDeleteRoleService : function(roleName){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.DELETE_ROLE_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getUpdateUserRoleLinkService : function(roleName, userName){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.UPDATE_USER_ROLE_LNK_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       req.addParameter("roleName", roleName);\r
+                       req.addParameter("userName", userName);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getCreateNatureService : function(natureData){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.CREATE_NATURE_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       req.addParameter("natureData", natureData);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getDeleteNatureService : function(natureUuid){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.DELETE_NATURE_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       req.addParamter("natureUuid", natureUuid);\r
+                       return req;\r
+               },\r
+               \r
+               /**\r
+                * @return  {qx.io.remote.Request}\r
+                */\r
+               getUpdateNatureService : function(natureUuid, natureData){\r
+                       var req = org.argeo.security.ria.SecurityAPI.getServiceRequest(org.argeo.security.ria.SecurityAPI.UPDATE_NATURE_SERVICE);\r
+                       org.argeo.security.ria.SecurityAPI.parseOptionalArguments(req, arguments, 1);\r
+                       req.addParamter("natureUuid", natureUuid);\r
+                       req.addParameter("natureData", natureData);\r
+                       return req;\r
+               }               \r
+       }\r
+});
\ No newline at end of file
diff --git a/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/model/Nature.js b/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/model/Nature.js
new file mode 100644 (file)
index 0000000..ff61c7b
--- /dev/null
@@ -0,0 +1,22 @@
+qx.Class.define("org.argeo.security.ria.model.Nature", {\r
+       extend : qx.core.Object,\r
+       properties : {\r
+               uuid : {\r
+                       check : "String"\r
+               },\r
+               type : {\r
+                       check : "String"\r
+               },\r
+               data : {\r
+                       check : "Map"\r
+               }\r
+       },\r
+       construct : function(){\r
+               this.base(arguments);\r
+       },\r
+       members : {\r
+               load : function(data, format){\r
+                       \r
+               }\r
+       }       \r
+});
\ No newline at end of file
diff --git a/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/model/User.js b/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/model/User.js
new file mode 100644 (file)
index 0000000..acf5572
--- /dev/null
@@ -0,0 +1,25 @@
+qx.Class.define("org.argeo.security.ria.model.User", {\r
+       extend : qx.core.Object,\r
+       properties : {\r
+               name : {\r
+                       check : "String"\r
+               },\r
+               roles : {\r
+                       check : "Array"\r
+               },\r
+               natures :{\r
+                       check : "Array"\r
+               }\r
+       },\r
+       construct : function(){\r
+               this.base(arguments);\r
+       },\r
+       members : {\r
+               load : function(data, format){\r
+                       this.setName(data.username);\r
+                       this.setRoles(data.roles);\r
+                       this.setNatures(data.userNatures);\r
+               }\r
+       }\r
+       \r
+});
\ No newline at end of file