diff options
-rw-r--r-- | aconf/model/aaa.lua | 2 | ||||
-rw-r--r-- | aconf/model/field.lua | 4 | ||||
-rw-r--r-- | aconf/model/init.lua | 9 | ||||
-rw-r--r-- | aconf/model/node.lua | 3 |
4 files changed, 12 insertions, 6 deletions
diff --git a/aconf/model/aaa.lua b/aconf/model/aaa.lua index e324381..1986b3b 100644 --- a/aconf/model/aaa.lua +++ b/aconf/model/aaa.lua @@ -57,7 +57,7 @@ function User:check_permission(permission) if self.superuser then return true end - assert(getmetatable(self).txn:fetch('/auth/permissions')[permission]) + assert(self:fetch('/auth/permissions')[permission]) for _, role in M.node.pairs(self.roles, true) do for _, p in M.node.pairs(role.permissions, true) do diff --git a/aconf/model/field.lua b/aconf/model/field.lua index 8b300a5..26711f2 100644 --- a/aconf/model/field.lua +++ b/aconf/model/field.lua @@ -335,7 +335,9 @@ function M.TreeNode:save(context, value) local path = context.path if value == path then return end - if type(value) == 'string' then value = context.txn:fetch(value) end + if type(value) == 'string' then + value = node.fetch(context.parent, value) + end if object.isinstance(value, node.TreeNode) and node.path(value) == path then return end diff --git a/aconf/model/init.lua b/aconf/model/init.lua index e3395cc..cab92e7 100644 --- a/aconf/model/init.lua +++ b/aconf/model/init.lua @@ -97,8 +97,9 @@ end function M.Reference:_choice(context) local res = {} - local txn = context.txn - local obj = relabel('system', txn.fetch, txn, self:abs_scope(context)) + local obj = relabel( + 'system', node.fetch, context.parent, self:abs_scope(context) + ) assert(isinstance(obj, node.Collection)) for k, v in node.pairs(obj) do @@ -136,7 +137,9 @@ function M.Reference:meta(context) end function M.Reference:follow(context, value) - return context.txn:fetch(M.path.rawjoin(self:abs_scope(context), value)) + return node.fetch( + context.parent, M.path.rawjoin(self:abs_scope(context), value) + ) end function M.Reference:load(context, options) diff --git a/aconf/model/node.lua b/aconf/model/node.lua index 4ef45d8..bc07ca4 100644 --- a/aconf/model/node.lua +++ b/aconf/model/node.lua @@ -148,7 +148,7 @@ function M.TreeNode:init(context, params) function mt.has_permission(user, permission) local p = permission..mt.path - if mt.txn:fetch('/auth/permissions')[p] then + if mt.fetch('/auth/permissions')[p] then return user:check_permission(p) end @@ -340,6 +340,7 @@ end for _, mf in ipairs{ 'addr', 'contains', + 'fetch', 'has_permission', 'insert', 'meta', |