summaryrefslogtreecommitdiffstats
path: root/app/acf-util/roles-controller.lua
diff options
context:
space:
mode:
Diffstat (limited to 'app/acf-util/roles-controller.lua')
-rw-r--r--app/acf-util/roles-controller.lua84
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