1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
-- Roles/Group functions
module (..., package.seeall)
default_action = "read"
-- Return your own roles/permissions
read = function(self)
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
viewuserroles = function(self)
if not (self.clientdata.userid) then
redirect(self)
end
userid = cfe({ value=self.clientdata.userid, label="User Id" })
roles = self.model.get_user_roles(self, userid.value)
roles.value.userid = userid
return roles
end
-- Return permissions for specified role
viewroleperms = function(self)
if not (self.clientdata.role) then
redirect(self, "getlist")
end
role = cfe({ value=self.clientdata.role, label="Role" })
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)
return cfe({ type="group", value={permissions=self.model.get_perms_list()} })
end
viewroles = function(self)
-- Get command result out of session data
local cmdresult = self.sessiondata.cmdresult
self.sessiondata.cmdresult = nil
local roles = self.model.view_roles()
roles.value.cmdresult = cmdresult
return roles
end
newrole = function(self)
local form
if self.clientdata.Save then
form = self.model.setpermissions(self, self.clientdata.role, self.clientdata.permissions, true)
if form.value.role.errtxt then
form.errtxt = "Failed to create role"
else
local cmdresult = cfe({ value="New role created", label="New role result" })
self.sessiondata.cmdresult = cmdresult
redirect(self, "viewroles")
end
else
form = self.model.getpermissions(self)
end
form.type = "form"
form.label = "Edit new role"
form.option = "Save"
return form
end
editrole = function(self)
local form
if self.clientdata.Save then
form = self.model.setpermissions(self, self.clientdata.role, self.clientdata.permissions, false)
if form.value.role.errtxt then
form.errtxt = "Failed to save role"
else
local cmdresult = cfe({ value="Role saved", label="Edit role result" })
self.sessiondata.cmdresult = cmdresult
redirect(self, "viewroles")
end
else
form = self.model.getpermissions(self, self.clientdata.role)
end
form.type = "form"
form.label = "Edit role"
form.option = "Save"
return form
end
deleterole = function(self)
self.sessiondata.cmdresult = self.model.delete_role(self.clientdata.role)
redirect(self, "viewroles")
end
|