diff options
author | Ted Trask <ttrask01@yahoo.com> | 2010-10-06 12:57:42 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2010-10-06 12:57:42 +0000 |
commit | 25c09923e08f664a0c791f27d521fb13f4d5d74c (patch) | |
tree | 6410b0964cdbbd2603b9598f8474b5a9333be520 /lib | |
parent | b202af98292d6d7b5053e5a934b916153ce89af9 (diff) | |
download | acf-core-25c09923e08f664a0c791f27d521fb13f4d5d74c.tar.bz2 acf-core-25c09923e08f664a0c791f27d521fb13f4d5d74c.tar.xz |
Added home page (action) to user parameters and redirect there after login
Moved get_all_permissions function from acf-util/roles-model to lib/roles
Diffstat (limited to 'lib')
-rw-r--r-- | lib/authenticator.lua | 6 | ||||
-rw-r--r-- | lib/roles.lua | 35 |
2 files changed, 37 insertions, 4 deletions
diff --git a/lib/authenticator.lua b/lib/authenticator.lua index 95eb3d7..724b854 100644 --- a/lib/authenticator.lua +++ b/lib/authenticator.lua @@ -37,6 +37,7 @@ local parse_entry = function(id, entry) a.username = fields[2] or "" a.roles = fields[3] or "" a.skin = fields[4] or "" + a.home = fields[5] or "" authstruct[id] = a end return a @@ -106,14 +107,15 @@ write_userinfo = function(self, userinfo) return false end id = get_id(self, userinfo.userid) or {} - -- Username, password, roles, skin are allowed to not exist, just leave the same + -- Username, password, roles, skin, home are allowed to not exist, just leave the same id.userid = userinfo.userid if userinfo.username then id.username = userinfo.username end if userinfo.password then id.password = md5.sumhexa(userinfo.password) end if userinfo.roles then id.roles = table.concat(userinfo.roles, ",") end if userinfo.skin then id.skin = userinfo.skin end + if userinfo.home then id.home = userinfo.home end - local success = auth.write_entry(self, usertable, "", id.userid, (id.password or "")..":"..(id.username or "")..":"..(id.roles or "")..":"..(id.skin or "")) + local success = auth.write_entry(self, usertable, "", id.userid, (id.password or "")..":"..(id.username or "")..":"..(id.roles or "")..":"..(id.skin or "")..":"..(id.home or "")) authstruct[userinfo.userid] = nil get_id(self, id.userid) diff --git a/lib/roles.lua b/lib/roles.lua index e5786ba..6c5b8a2 100644 --- a/lib/roles.lua +++ b/lib/roles.lua @@ -9,7 +9,7 @@ module (..., package.seeall) 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 +local defined_roles, default_roles, reverseroles, roles_candidates, role_table, table_perm, array_perm -- returns a table of the *.roles files -- startdir should be the app dir @@ -43,7 +43,7 @@ end -- Return information about all or specified controller files get_controllers = function(self,pre,controller) --we get all the controllers - local list = roles.list_controllers(self) + local list = list_controllers(self) --we need to grab the directory and name of file local temp = {} for k,v in pairs(list) do @@ -94,6 +94,37 @@ get_controllers_view = function(self,controller_info) return temp end +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) + table_perm = {} + array_perm = {} + for a,b in pairs(controllers) do + if nil == table_perm[b.prefix] then + table_perm[b.prefix] = {} + end + if nil == table_perm[b.prefix][b.sname] then + table_perm[b.prefix][b.sname] = {} + end + local temp = 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) + for x,y in ipairs(temp) do + if not table_perm[b.prefix][b.sname][y] then + table_perm[b.prefix][b.sname][y] = {} + array_perm[#array_perm + 1] = b.prefix .. b.sname .. "/" .. y + end + end + end + end + + return table_perm, array_perm +end + list_default_roles = function(self) if not default_roles then default_roles = {} |