summaryrefslogtreecommitdiffstats
path: root/aconf/model/node.lua
diff options
context:
space:
mode:
Diffstat (limited to 'aconf/model/node.lua')
-rw-r--r--aconf/model/node.lua6
1 files changed, 4 insertions, 2 deletions
diff --git a/aconf/model/node.lua b/aconf/model/node.lua
index fe816e8..95d9e79 100644
--- a/aconf/model/node.lua
+++ b/aconf/model/node.lua
@@ -131,6 +131,7 @@ function M.TreeNode:init(context, params)
function mt._has_permission(permission) end
+ -- TODO audit trail
function mt.has_permission(permission)
if mt.privileged then return true end
@@ -138,11 +139,12 @@ function M.TreeNode:init(context, params)
local res = permissions[name]
if res ~= nil then return res end
- res = mt._has_permission(permission)
+ local user = mt.txn.user
+ res = user.superuser or mt._has_permission(permission)
if res == nil then
if getmetatable(mt.escalate).fetch('/auth/permissions')[name] then
- res = mt.txn.user:check_permission(name)
+ res = user:check_permission(name)
else
if ({create=true, delete=true})[permission] then
permission = 'modify'