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.lua33
1 files changed, 31 insertions, 2 deletions
diff --git a/app/acf-util/roles-controller.lua b/app/acf-util/roles-controller.lua
index b868924..4363cb6 100644
--- a/app/acf-util/roles-controller.lua
+++ b/app/acf-util/roles-controller.lua
@@ -2,12 +2,41 @@
module (..., package.seeall)
+auth = require("authenticator-plaintext")
+roll = require("roles")
+
default_action = "read"
+-- Return your own roles/permissions
read = function(self)
- return ( { userid = self.sessiondata.userinfo.userid, roles = self.sessiondata.userinfo.roles, permissions = self.sessiondata.permissions } )
+ userid = cfe({ value=self.sessiondata.userinfo.userid, label="User Id" })
+ roles = cfe({ type="list", value=self.sessiondata.userinfo.roles, label="Roles" })
+ permissions = cfe({ type="table", value = self.sessiondata.permissions, label="Permissions" })
+ return cfe({ type="group", value={userid=userid, roles=roles, permissions=permissions} })
+end
+
+-- Return roles/permissions for specified user
+viewroles = function(self)
+ if not (self.clientdata.userid) then
+ 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} })
+end
+
+-- Return permissions for specified role
+viewperms = function(self)
+ if not (self.clientdata.role) then
+ 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" })
+ return cfe({ type="group", value={role=role, permissions=permissions} })
end
+-- Return list of all permissions
getlist = function(self)
- return( { contlist = self.model:getcont(self)})
+ return cfe({ type="group", value={permissions=self.model:getcont(self)} })
end