summaryrefslogtreecommitdiffstats
path: root/app/acf-util/roles-editrole-html.lsp
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-10-24 15:20:36 +0000
committerTed Trask <ttrask01@yahoo.com>2008-10-24 15:20:36 +0000
commit43915f5de0ae60da41615a3edacca18cd85dd921 (patch)
tree0eb4d66c612feaea5b4d789d3293012447afe07c /app/acf-util/roles-editrole-html.lsp
parent062423a2cd98a8c1dfd23453853bf73b8db1b180 (diff)
downloadacf-core-43915f5de0ae60da41615a3edacca18cd85dd921.tar.bz2
acf-core-43915f5de0ae60da41615a3edacca18cd85dd921.tar.xz
Minor change to roles code and major change to roles. Replaced ALL, CREATE, READ, UPDATE, and DELETE with GUEST, USER, EDITOR, EXPERT, and ADMIN. Changed all roles files and modified some html files to hide options without permissions. Determine default roles from roles files, rather than hard-coded, and added ability to modify default roles by adding permissions.
git-svn-id: svn://svn.alpinelinux.org/acf/core/trunk@1563 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'app/acf-util/roles-editrole-html.lsp')
-rw-r--r--app/acf-util/roles-editrole-html.lsp62
1 files changed, 59 insertions, 3 deletions
diff --git a/app/acf-util/roles-editrole-html.lsp b/app/acf-util/roles-editrole-html.lsp
index 5f106fc..0a32839 100644
--- a/app/acf-util/roles-editrole-html.lsp
+++ b/app/acf-util/roles-editrole-html.lsp
@@ -7,11 +7,67 @@
<H1><%= form.label %></H1>
<%
- form.action = page_info.script .. page_info.prefix .. page_info.controller .. "/" .. page_info.action
+ displayformstart(form, page_info)
-- If editing existing role, disable role
if page_info.action ~= "newrole" then
form.value.role.contenteditable = false
end
- local order = { "role", "permissions" }
- displayform(form, order)
+ io.write("<DL>\n")
+ displayformitem(form.value.role, "role")
+
+ -- copied this code from viewfunctions so we can disable the default boxes
+ local myitem = form.value.permissions
+ myitem.name = "permissions"
+ io.write("<DT")
+ if myitem.errtxt then
+ myitem.class = "error"
+ io.write(' class="error"')
+ end
+ io.write(">" .. myitem.label .. "</DT>\n")
+ io.write("<DD>")
+ -- FIXME multiple select doesn't work in haserl, so use series of checkboxes
+ myitem.class = nil
+ local tempname = myitem.name
+ local tempval = myitem.value or {}
+ local reversedefault = {}
+ for x,val in ipairs(myitem.default or {}) do
+ reversedefault[val] = x
+ end
+ local reverseval = {}
+ for x,val in ipairs(tempval) do
+ reverseval[val] = x
+ end
+ local reverseopt = {}
+ for x,val in ipairs(myitem.option) do
+ reverseopt[val] = x
+ myitem.value = val
+ myitem.checked = reverseval[val]
+ if reversedefault[val] then myitem.disabled = true else myitem.disabled = nil end
+ myitem.name = tempname .. "." .. x
+ io.write(html.form.checkbox(myitem) .. val .. "<br>\n")
+ end
+ -- Check for values not in options
+ if myitem.errtxt then
+ myitem.class = "error"
+ io.write('<p class="error">\n')
+ end
+ for x,val in ipairs(tempval) do
+ if not reverseopt[val] then
+ myitem.value = val
+ myitem.checked = true
+ io.write(html.form.checkbox(myitem) .. val .. "<br>\n")
+ end
+ end
+ if myitem.errtxt then
+ io.write('</p>\n')
+ end
+ myitem.name = tempname
+ myitem.value = tempval
+
+ if myitem.descr then io.write('<P CLASS="descr">' .. string.gsub(myitem.descr, "\n", "<BR>") .. "</P>\n") end
+ if myitem.errtxt then io.write('<P CLASS="error">' .. string.gsub(myitem.errtxt, "\n", "<BR>") .. "</P>\n") end
+ io.write("</DD>\n")
+
+ io.write("</DL>\n")
+ displayformend(form)
%>