From 936f40ea95a0317082be9bc8e8493e3eeac48b2c Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Wed, 20 Apr 2016 00:45:27 +0300 Subject: model: remove node-specific permission cache --- aconf/model/node.lua | 24 +++++++----------------- 1 file 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) -- cgit v1.2.3