diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2016-04-20 00:45:27 +0300 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2016-04-20 00:53:11 +0300 |
commit | 936f40ea95a0317082be9bc8e8493e3eeac48b2c (patch) | |
tree | 373d4cd5e94510b96753f891f701d58bf071c106 /aconf/model | |
parent | 64fb7a6edb00fac497fa9ef58b2b8f49a5f8b4ed (diff) | |
download | aconf-936f40ea95a0317082be9bc8e8493e3eeac48b2c.tar.bz2 aconf-936f40ea95a0317082be9bc8e8493e3eeac48b2c.tar.xz |
model: remove node-specific permission cachev0.6.1
Diffstat (limited to 'aconf/model')
-rw-r--r-- | aconf/model/node.lua | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/aconf/model/node.lua b/aconf/model/node.lua index ccbb418..7296446 100644 --- a/aconf/model/node.lua +++ b/aconf/model/node.lua @@ -184,33 +184,23 @@ function M.TreeNode:init(context, params) function mt.search(path) return mt._search(pth.split(path), '') end - local permissions = {} - function mt._has_permission(permission) end -- TODO audit trail function mt.has_permission(permission) if mt.privileged then return true end - local name = permission..mt.path - local res = permissions[name] + local user = mt.txn.user + local res = user.superuser or mt._has_permission(permission) if res ~= nil then return res end - local user = mt.txn.user - res = user.superuser or mt._has_permission(permission) + res = mt.txn.user:check_permission(permission..mt.path) + if res ~= nil then return res end - if res == nil then - res = mt.txn.user:check_permission(name) - if res == nil then - if ({create=true, delete=true})[permission] then - permission = 'modify' - end - res = getmetatable(mt.parent).has_permission(permission) - end + if ({create=true, delete=true})[permission] then + permission = 'modify' end - - permissions[name] = res - return res + return getmetatable(mt.parent).has_permission(permission) end function mt.check_permission(permission) |