From 2799724a1683023f9eaa618127af9d07c0c46f23 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Mon, 28 Dec 2009 16:46:05 +0000 Subject: Added ability to manage roles based on which roles file they're in = more granularity of roles. --- app/acf-util/password-status-html.lsp | 2 +- app/acf-util/roles-viewroles-html.lsp | 15 ++++---- lib/roles.lua | 69 +++++++++++++++++++++++------------ 3 files changed, 53 insertions(+), 33 deletions(-) diff --git a/app/acf-util/password-status-html.lsp b/app/acf-util/password-status-html.lsp index 045d770..eb960be 100755 --- a/app/acf-util/password-status-html.lsp +++ b/app/acf-util/password-status-html.lsp @@ -29,7 +29,7 @@ io.write("") <%= html.html_escape(user.value.username.value) %> <%= html.html_escape(user.value.roles.label) %> - <%= html.html_escape(table.concat(user.value.roles.value, " / ")) %> + <%= html.html_escape(table.concat(user.value.roles.value, ", ")) %> Option diff --git a/app/acf-util/roles-viewroles-html.lsp b/app/acf-util/roles-viewroles-html.lsp index 68aac01..1f8f24e 100644 --- a/app/acf-util/roles-viewroles-html.lsp +++ b/app/acf-util/roles-viewroles-html.lsp @@ -17,23 +17,22 @@

Existing roles

-<% if view.value.default_roles then %> - <% for x,role in pairs(view.value.default_roles.value) do %> - <% end %> <% end %> -<% if view.value.defined_roles then %> - <% table.sort(view.value.defined_roles.value) %> - <% for x,role in pairs(view.value.defined_roles.value) do %> - <% end %> <% end %> diff --git a/lib/roles.lua b/lib/roles.lua index 2bceb01..0366a30 100644 --- a/lib/roles.lua +++ b/lib/roles.lua @@ -89,14 +89,29 @@ list_default_roles = function(self) for x,file in ipairs(rolesfiles) do f = fs.read_file_as_array(file) or {} + local rolefile = string.match(file, "(/[^/]+/[^/]+)%.roles$") for y,line in pairs(f) do - if not reverseroles[string.match(line,"^[%w_]+")] then - default_roles[#default_roles+1] = string.match(line,"^[%w_]+") - reverseroles[default_roles[#default_roles]] = #default_roles + local role = string.match(line,"^[%w_]+") + if role then + if not reverseroles[rolefile.."/"..role] then + default_roles[#default_roles+1] = rolefile.."/"..role + reverseroles[default_roles[#default_roles]] = #default_roles + end + if not reverseroles[role] then + default_roles[#default_roles+1] = role + reverseroles[default_roles[#default_roles]] = #default_roles + end end end end + table.sort(default_roles, function(a,b) + if string.byte(a, 1) == 47 and string.byte(b,1) ~= 47 then return false + elseif string.byte(a, 1) ~= 47 and string.byte(b,1) == 47 then return true + else return a
<%= html.html_escape(role) %>
+<% if view.value.defined_roles then %> + <% for x,role in pairs(view.value.defined_roles.value) do %> +
<%= html.html_escape(role) %>
[View this role] [Edit this role] + [Delete this role]
<%= html.html_escape(role) %>
+<% if view.value.default_roles then %> + <% for x,role in pairs(view.value.default_roles.value) do %> +
<%= html.html_escape(role) %>
[View this role] [Edit this role] - [Delete this role]