mirror of
https://github.com/YunoHost/SSOwat.git
synced 2024-09-03 20:06:27 +02:00
Add a small helper to check if an element is in a table ... in turn fixing a bug related to calling has_access
This commit is contained in:
parent
06f1f30226
commit
ed6fa1aa49
1 changed files with 15 additions and 10 deletions
25
helpers.lua
25
helpers.lua
|
@ -315,21 +315,26 @@ function has_access(permission, user)
|
||||||
|
|
||||||
logger.debug("User "..user.." tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")")
|
logger.debug("User "..user.." tries to access "..ngx.var.uri.." (corresponding perm: "..permission["id"]..")")
|
||||||
|
|
||||||
-- All user in this permission
|
-- The user has permission to access the content if he is in the list of allowed users
|
||||||
allowed_users = permission["users"]
|
if element_is_in_table(user, permission["users"]) then
|
||||||
|
logger.debug("User "..user.." can access "..ngx.var.host..ngx.var.uri..uri_args_string())
|
||||||
|
log_access(user, ngx.var.host..ngx.var.uri..uri_args_string())
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
logger.debug("User "..user.." cannot access "..ngx.var.uri)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- The user has permission to access the content if he is in the list of this one
|
function element_is_in_table(element, table)
|
||||||
if allowed_users then
|
if table then
|
||||||
for _, u in pairs(allowed_users) do
|
for _, el in pairs(table) do
|
||||||
if u == user then
|
if el == element then
|
||||||
logger.debug("User "..user.." can access "..ngx.var.host..ngx.var.uri..uri_args_string())
|
|
||||||
log_access(user, ngx.var.host..ngx.var.uri..uri_args_string())
|
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
logger.debug("User "..user.." cannot access "..ngx.var.uri)
|
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -646,7 +651,7 @@ function get_data_for(view)
|
||||||
-- It is typically used to build the app list.
|
-- It is typically used to build the app list.
|
||||||
for permission_name, permission in pairs(conf["permissions"]) do
|
for permission_name, permission in pairs(conf["permissions"]) do
|
||||||
-- We want to display a tile, and uris is not empty
|
-- We want to display a tile, and uris is not empty
|
||||||
if permission['show_tile'] and next(permission['uris']) ~= nil and has_access(permission, user) then
|
if permission['show_tile'] and next(permission['uris']) ~= nil and element_is_in_table(user, permission["users"]) then
|
||||||
url = permission['uris'][1]
|
url = permission['uris'][1]
|
||||||
name = permission['label']
|
name = permission['label']
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue