summaryrefslogtreecommitdiffstats
path: root/lib/roles.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lib/roles.lua')
-rw-r--r--lib/roles.lua50
1 files changed, 26 insertions, 24 deletions
diff --git a/lib/roles.lua b/lib/roles.lua
index 5cc293d..eb64305 100644
--- a/lib/roles.lua
+++ b/lib/roles.lua
@@ -4,9 +4,9 @@ authenticator = require ("authenticator")
fs = require ("acf.fs")
format = require ("acf.format")
-module (..., package.seeall)
+local mymodule = {}
-guest_role = "GUEST"
+mymodule.guest_role = "GUEST"
-- Global variables so we don't have to figure out all the roles multiple times
local defined_roles, default_roles, reverseroles, roles_candidates, role_table, table_perm, array_perm
@@ -27,7 +27,7 @@ local get_roles_candidates = function(self)
end
-- Return a list of *controller.lua files
-list_controllers = function(self)
+mymodule.list_controllers = function(self)
local list = {}
for p in string.gmatch(self.conf.appdir, "[^,]+") do
for file in fs.find(".*controller%.lua", p, true) do
@@ -41,9 +41,9 @@ list_controllers = function(self)
end
-- Return information about all or specified controller files
-get_controllers = function(self,pre,controller)
+mymodule.get_controllers = function(self,pre,controller)
--we get all the controllers
- local list = list_controllers(self)
+ local list = mymodule.list_controllers(self)
--we need to grab the directory and name of file
local temp = {}
for k,v in pairs(list) do
@@ -64,7 +64,7 @@ get_controllers = function(self,pre,controller)
end
-- Find all public functions in a controller
-get_controllers_func = function(self,controller_info)
+mymodule.get_controllers_func = function(self,controller_info)
if controller_info == nil then
return "Could not be processed"
else
@@ -91,7 +91,7 @@ get_controllers_func = function(self,controller_info)
end
-- Find all views for a controller
-get_controllers_view = function(self,controller_info)
+mymodule.get_controllers_view = function(self,controller_info)
local temp = {}
for file in fs.find(controller_info.sname.."%-[^%.]+%-html%.lsp", controller_info.path) do
temp[#temp + 1] = string.match(file, controller_info.sname.."%-([^%./]+)%-html%.lsp")
@@ -99,10 +99,10 @@ get_controllers_view = function(self,controller_info)
return temp
end
-get_all_permissions = function(self)
+mymodule.get_all_permissions = function(self)
if not table_perm or not array_perm then
-- need to get a list of all the controllers
- controllers = get_controllers(self)
+ controllers = mymodule.get_controllers(self)
table_perm = {}
array_perm = {}
for a,b in pairs(controllers) do
@@ -112,12 +112,12 @@ get_all_permissions = function(self)
if nil == table_perm[b.prefix][b.sname] then
table_perm[b.prefix][b.sname] = {}
end
- local temp = get_controllers_func(self,b)
+ local temp = mymodule.get_controllers_func(self,b)
for x,y in ipairs(temp) do
table_perm[b.prefix][b.sname][y] = {}
array_perm[#array_perm + 1] = b.prefix .. b.sname .. "/" .. y
end
- temp = get_controllers_view(self,b)
+ temp = mymodule.get_controllers_view(self,b)
for x,y in ipairs(temp) do
if not table_perm[b.prefix][b.sname][y] then
table_perm[b.prefix][b.sname][y] = {}
@@ -130,7 +130,7 @@ get_all_permissions = function(self)
return table_perm, array_perm
end
-list_default_roles = function(self)
+mymodule.list_default_roles = function(self)
if not default_roles then
default_roles = {}
reverseroles = {}
@@ -174,7 +174,7 @@ list_default_roles = function(self)
return default_roles, reverseroles
end
-list_defined_roles = function(self)
+mymodule.list_defined_roles = function(self)
if not defined_roles then
local auth = authenticator.get_subauth(self)
-- Open the roles file and parse for defined roles
@@ -191,15 +191,15 @@ list_defined_roles = function(self)
return defined_roles
end
-list_roles = function(self)
- local default_roles = list_default_roles(self)
- local defined_roles = list_defined_roles(self)
+mymodule.list_roles = function(self)
+ local default_roles = mymodule.list_default_roles(self)
+ local defined_roles = mymodule.list_defined_roles(self)
return defined_roles, default_roles
end
-list_all_roles = function(self)
- local defined_roles, default_roles = list_roles(self)
+mymodule.list_all_roles = function(self)
+ local defined_roles, default_roles = mymodule.list_roles(self)
-- put the defined roles first
for x,role in ipairs(default_roles) do
defined_roles[#defined_roles + 1] = role
@@ -270,7 +270,7 @@ local determine_perms = function(self,roles)
temp = format.string_to_table(entry.entry, ",")
for z,perm in pairs(temp) do
local prefix,control,action = self.parse_path_info(perm)
- if control then
+ if control and "" ~= control then
if nil == permissions[prefix] then
permissions[prefix] = {}
end
@@ -290,18 +290,18 @@ local determine_perms = function(self,roles)
end
-- Go through the roles files and determine the permissions for the specified list of roles (including guest)
-get_roles_perm = function(self,roles)
- roles[#roles+1] = guest_role
+mymodule.get_roles_perm = function(self,roles)
+ roles[#roles+1] = mymodule.guest_role
return determine_perms(self, roles)
end
-- Go through the roles files and determine the permissions for the specified role
-get_role_perm = function(self,role)
+mymodule.get_role_perm = function(self,role)
return determine_perms(self, {role})
end
-- Delete a role from role file
-delete_role = function(self, role)
+mymodule.delete_role = function(self, role)
local auth = authenticator.get_subauth(self)
local result = auth.delete_entry(self, authenticator.roletable, "", role)
local cmdresult = "Role entry not found"
@@ -311,7 +311,7 @@ delete_role = function(self, role)
end
-- Set permissions for a role in role file
-set_role_perm = function(self, role, permissions, permissions_array)
+mymodule.set_role_perm = function(self, role, permissions, permissions_array)
if role==nil or role=="" then
return false, "Invalid Role"
end
@@ -332,3 +332,5 @@ set_role_perm = function(self, role, permissions, permissions_array)
local auth = authenticator.get_subauth(self)
return auth.write_entry(self, authenticator.roletable, "", role, table.concat(permissions_array or {},","))
end
+
+return mymodule