diff options
author | Ted Trask <ttrask01@yahoo.com> | 2008-07-12 15:27:51 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2008-07-12 15:27:51 +0000 |
commit | 4522cd8af6efd114b79b48eeddfa9660cfb08716 (patch) | |
tree | 4c35c5d2a3c146c0759f24dafbdb93b491c8eab0 | |
parent | f6baf459cde6258511c94c0e1324d630af675cb5 (diff) | |
download | acf-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.lua | 57 | ||||
-rw-r--r-- | app/acf-util/roles-editrole-html.lsp | 10 | ||||
-rw-r--r-- | app/acf-util/roles-model.lua | 27 | ||||
l---------[-rw-r--r--] | app/acf-util/roles-newrole-html.lsp | 6 | ||||
-rw-r--r-- | app/acf-util/roles-viewroles-html.lsp | 18 |
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 ?> -<? --]] ?> |