summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-07-12 15:27:51 +0000
committerTed Trask <ttrask01@yahoo.com>2008-07-12 15:27:51 +0000
commit4522cd8af6efd114b79b48eeddfa9660cfb08716 (patch)
tree4c35c5d2a3c146c0759f24dafbdb93b491c8eab0
parentf6baf459cde6258511c94c0e1324d630af675cb5 (diff)
downloadacf-core-4522cd8af6efd114b79b48eeddfa9660cfb08716.tar.bz2
acf-core-4522cd8af6efd114b79b48eeddfa9660cfb08716.tar.xz
Modifed roles to use controllerfunctions, modelfunctions, and a symlink.
git-svn-id: svn://svn.alpinelinux.org/acf/core/trunk@1298 ab2d0c66-481e-0410-8bed-d214d4d58bed
-rw-r--r--app/acf-util/roles-controller.lua57
-rw-r--r--app/acf-util/roles-editrole-html.lsp10
-rw-r--r--app/acf-util/roles-model.lua27
l---------[-rw-r--r--]app/acf-util/roles-newrole-html.lsp6
-rw-r--r--app/acf-util/roles-viewroles-html.lsp18
5 files changed, 40 insertions, 78 deletions
diff --git a/app/acf-util/roles-controller.lua b/app/acf-util/roles-controller.lua
index 4c27e9d..8b6717e 100644
--- a/app/acf-util/roles-controller.lua
+++ b/app/acf-util/roles-controller.lua
@@ -1,7 +1,8 @@
-- Roles/Group functions
-
module (..., package.seeall)
+require("controllerfunctions")
+
default_action = "read"
-- Return your own roles/permissions
@@ -39,57 +40,23 @@ getpermslist = function(self)
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
+ return self.model.view_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
+ return controllerfunctions.handle_form(self,
+ function() return self.model.getpermissions(self) end,
+ function(value) return self.model.setpermissions(self, value, true) end,
+ self.clientdata, "Save", "Create New Role", "New Role Created", "viewroles")
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
+ return controllerfunctions.handle_form(self,
+ function() return self.model.getpermissions(self, self.clientdata.role) end,
+ function(value) return self.model.setpermissions(self, value, false) end,
+ self.clientdata, "Save", "Edit Role", "Role Saved", "viewroles")
end
deleterole = function(self)
- self.sessiondata.cmdresult = self.model.delete_role(self.clientdata.role)
- redirect(self, "viewroles")
+ return self:redirect_to_referrer(self.model.delete_role(self.clientdata.role))
end
diff --git a/app/acf-util/roles-editrole-html.lsp b/app/acf-util/roles-editrole-html.lsp
index a1bfc7a..d0e1e3f 100644
--- a/app/acf-util/roles-editrole-html.lsp
+++ b/app/acf-util/roles-editrole-html.lsp
@@ -1,17 +1,17 @@
-<? local form, viewtable, pageinfo = ... ?>
+<? local form, viewtable, page_info = ... ?>
+<? require("viewfunctions") ?>
+
<? --[[
io.write(html.cfe_unpack(form))
--]] ?>
-<? ---[[ ?>
<H1><?= form.label ?></H1>
<?
- require("viewfunctions")
+ form.action = page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action
-- If editing existing role, disable role
- if pageinfo.action ~= "newrole" then
+ if page_info.action ~= "newrole" then
form.value.role.contenteditable = false
end
local order = { "role", "permissions" }
displayform(form, order)
?>
-<? --]] ?>
diff --git a/app/acf-util/roles-model.lua b/app/acf-util/roles-model.lua
index d02f390..b2db9db 100644
--- a/app/acf-util/roles-model.lua
+++ b/app/acf-util/roles-model.lua
@@ -1,6 +1,7 @@
-- Roles/Group functions
module (..., package.seeall)
+require("modelfunctions")
auth = require("authenticator-plaintext")
require("roles")
@@ -67,28 +68,30 @@ getpermissions = function(self, role)
return cfe({ type="table", value={role=role_cfe, permissions=permissions_cfe} })
end
-setpermissions = function(self, role, permissions, newrole)
- local my_perms = getpermissions(self, role)
- my_perms.value.permissions.value = permissions
-
+setpermissions = function(self, permissions, newrole)
-- Validate entries and create error strings
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
- my_perms.value.role.errtxt = "Role already exists"
- break
- end
+ local defined_roles, default_roles = roles.list_roles()
+ local reverseroles = {}
+ for i,role in ipairs(defined_roles) do reverseroles[role] = i end
+ for i,role in ipairs(default_roles) do reverseroles[role] = i end
+ if reverseroles[permissions.value.role.value] then
+ result = false
+ permissions.value.role.errtxt = "Role already exists"
+ permissions.errtxt = "Failed to create role"
end
end
-- Try to set the value
if result==true then
- result, my_perms.value.role.errtxt = roles.set_role_perm(role, nil, permissions)
+ result, permissions.value.role.errtxt = roles.set_role_perm(permissions.value.role.value, nil, permissions.value.permissions.value)
+ if not result then
+ permissions.errtxt = "Failed to save role"
+ end
end
- return my_perms
+ return permissions
end
delete_role = function(role)
diff --git a/app/acf-util/roles-newrole-html.lsp b/app/acf-util/roles-newrole-html.lsp
index 7de6181..dc2b56b 100644..120000
--- a/app/acf-util/roles-newrole-html.lsp
+++ b/app/acf-util/roles-newrole-html.lsp
@@ -1,5 +1 @@
-<? ---[[
--- FIXME - this is temp until symlinks are fixed
-local funk = haserl.loadfile("/usr/share/acf/app/acf-util/roles-editrole-html.lsp")
-funk(...)
---]] ?>
+roles-editrole-html.lsp \ No newline at end of file
diff --git a/app/acf-util/roles-viewroles-html.lsp b/app/acf-util/roles-viewroles-html.lsp
index a98f5b9..23e7195 100644
--- a/app/acf-util/roles-viewroles-html.lsp
+++ b/app/acf-util/roles-viewroles-html.lsp
@@ -1,19 +1,16 @@
-<? local view= ... ?>
+<? local view, viewlibrary, page_info, session= ... ?>
+<? require("viewfunctions") ?>
+
<? --[[
io.write(html.cfe_unpack(view))
--]] ?>
-<? ---[[ ?>
-<H1>ROLES</H1>
-
-<? if view.value.cmdresult then ?>
-<H2>Command Result</H2>
-<dl><?= view.value.cmdresult.value ?></dl>
-<? end ?>
+<? displaycommandresults({"deleterole"}, session) ?>
+<H1>Roles</H1>
<H2>Create new role</H2>
-<form action="newrole" method="POST">
-<dl><dt><input class="submit" type="submit" value="New Role"></dt></dl>
+<form action="<?= page_info.script .. page_info.prefix .. page_info.controller ?>/newrole" method="POST">
+<dl><dt></dt><dd><input class="submit" type="submit" value="New Role"></dd></dl>
</form>
<H2>Existing roles</H2>
@@ -40,4 +37,3 @@
<? end ?>
</dl>
<? end ?>
-<? --]] ?>