diff options
Diffstat (limited to 'app/acf-util/roles-controller.lua')
-rw-r--r-- | app/acf-util/roles-controller.lua | 84 |
1 files changed, 11 insertions, 73 deletions
diff --git a/app/acf-util/roles-controller.lua b/app/acf-util/roles-controller.lua index 1d69b8b..aa3e6bd 100644 --- a/app/acf-util/roles-controller.lua +++ b/app/acf-util/roles-controller.lua @@ -2,28 +2,6 @@ module (..., package.seeall) -auth = require("authenticator-plaintext") -roll = require("roles") - -local get_all_permissions = function(self) - -- need to get a list of all the controllers - controllers = roles.get_controllers(self) - local table_perm = {} - local array_perm = {} - for a,b in pairs(controllers) do - if nil == table_perm[b.sname] then - table_perm[b.sname] = {} - end - temp = roles.get_controllers_func(self,b) - for x,y in ipairs(temp) do - table_perm[b.sname][y] = {} - array_perm[#array_perm + 1] = b.sname .. ":" .. y - end - end - - return table_perm, array_perm -end - default_action = "read" -- Return your own roles/permissions @@ -40,9 +18,9 @@ viewuserroles = function(self) redirect(self) end userid = cfe({ value=self.clientdata.userid, label="User Id" }) - roles = cfe({ type="list", value=auth.get_userinfo_roles(self, userid.value), label="Roles" }) - permissions = cfe({ type="table", value=roll.get_roles_perm(self.conf.appdir, roles.value), label="Permissions" }) - return cfe({ type="group", value={userid=userid, roles=roles, permissions=permissions} }) + roles = self.model.get_user_roles(self, userid.value) + roles.value.userid = userid + return roles end -- Return permissions for specified role @@ -51,14 +29,13 @@ viewroleperms = function(self) redirect(self, "getlist") end role = cfe({ value=self.clientdata.role, label="Role" }) - permissions = cfe({ type="table", value=roll.get_role_perm(self.conf.appdir, role.value), label="Permissions" }) + permissions = self.model.get_role_perms(self, role.value) return cfe({ type="group", value={role=role, permissions=permissions} }) end -- Return list of all permissions getpermslist = function(self) - permissions = cfe({ type="table", value=get_all_permissions(self), label="All Permissions" }) - return cfe({ type="group", value={permissions=permissions} }) + return cfe({ type="group", value={permissions=self.model.get_perms_list()} }) end viewroles = function(self) @@ -66,52 +43,14 @@ viewroles = function(self) local cmdresult = self.sessiondata.cmdresult self.sessiondata.cmdresult = nil - local defined_roles, default_roles = roll.list_roles() - local defined_roles_cfe=cfe({ type="list", value=defined_roles, label="Locally-defined roles" }) - local default_roles_cfe=cfe({ type="list", value=default_roles, label="System-defined roles" }) - - return cfe({ type="group", value={defined_roles=defined_roles_cfe, default_roles=default_roles_cfe, cmdresult=cmdresult} }) -end - -local setpermissions = function(self, role, permissions, newrole) - local errtxt - local my_perms = {} - if permissions then - -- we're changing permissions - local result = true - if newrole then - -- make sure not overwriting role - for x,ro in ipairs(roles.list_roles()) do - if role==ro then - result = false - errtxt = "Role already exists" - break - end - end - end - if result==true then - result, errtxt = roles.set_role_perm(role, nil, permissions) - end - my_perms = self.clientdata.permissions - else - if role then - tmp, my_perms = roles.get_role_perm(self.conf.appdir, role) - else - role = "" - end - end - - local tmp, all_perms = get_all_permissions(self) - table.sort(all_perms) - - local permissions_cfe = cfe({ type="multi", value=my_perms, option=all_perms, label="Role permissions" }) - local role_cfe = cfe({ value=role, label="Role", errtxt=errtxt }) + local roles = self.model.view_roles() + roles.value.cmdresult = cmdresult - return cfe({ type="table", value={role=role_cfe, permissions=permissions_cfe} }) + return roles end newrole = function(self) - local form = setpermissions(self, self.clientdata.role, self.clientdata.permissions, true) + local form = self.model.setpermissions(self, self.clientdata.role, self.clientdata.permissions, true) form.type = "form" form.label = "Edit new role" if form.value.role.errtxt then @@ -126,7 +65,7 @@ newrole = function(self) end editrole = function(self) - local form = setpermissions(self, self.clientdata.role, self.clientdata.permissions, false) + local form = self.model.setpermissions(self, self.clientdata.role, self.clientdata.permissions, false) form.type = "form" form.label = "Edit role" if form.value.role.errtxt then @@ -141,7 +80,6 @@ editrole = function(self) end deleterole = function(self) - local result, cmdresult = roles.delete_role(self.clientdata.role) - self.sessiondata.cmdresult = cfe({ value=cmdresult }) + self.sessiondata.cmdresult = self.model.delete_role(self.clientdata.role) redirect(self, "viewroles") end |