summaryrefslogtreecommitdiffstats
path: root/aconf
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-06-25 23:32:21 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-06-25 23:35:46 +0300
commita0e697b34e270e97ea35aa567ba1c58ecbd63f1c (patch)
tree88d67b86324b4c478888c4bbafacd217926f1cc4 /aconf
parentc8e7ab367c5967641b07adf59328759311902bf6 (diff)
downloadaconf-a0e697b34e270e97ea35aa567ba1c58ecbd63f1c.tar.bz2
aconf-a0e697b34e270e97ea35aa567ba1c58ecbd63f1c.tar.xz
model: propagate escalated privileges to parent instance
Diffstat (limited to 'aconf')
-rw-r--r--aconf/model/node.lua9
1 files changed, 8 insertions, 1 deletions
diff --git a/aconf/model/node.lua b/aconf/model/node.lua
index b4fd685..80f1de0 100644
--- a/aconf/model/node.lua
+++ b/aconf/model/node.lua
@@ -70,7 +70,14 @@ function M.TreeNode:init(context, params)
if not (mt.txn and mt.txn.user) then mt.privileged = true end
mt.escalate = mt.privileged and self or mt.class(
- setdefaults({privileged=true}, context), params
+ setdefaults(
+ {
+ parent=mt.parent and getmetatable(mt.parent).escalate,
+ privileged=true
+ },
+ context
+ ),
+ params
)
function mt.get(k, options) return mt.load(k, options) end