summaryrefslogtreecommitdiffstats
path: root/acf2/model
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-11-25 21:19:40 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2013-11-25 23:28:52 +0200
commitadf3a22a1ff154703803827117653aa2400ed08d (patch)
treeb648c1829363490bd55fa998f7b19851d4fc4ed8 /acf2/model
parent4ff7513fec2df0f079b844c7c558e9ad6c448b16 (diff)
downloadacf2-adf3a22a1ff154703803827117653aa2400ed08d.tar.bz2
acf2-adf3a22a1ff154703803827117653aa2400ed08d.tar.xz
model: disallow references to ancestors
Diffstat (limited to 'acf2/model')
-rw-r--r--acf2/model/init.lua6
1 files changed, 4 insertions, 2 deletions
diff --git a/acf2/model/init.lua b/acf2/model/init.lua
index 27a2e32..6b89384 100644
--- a/acf2/model/init.lua
+++ b/acf2/model/init.lua
@@ -90,9 +90,11 @@ function M.Reference:meta(context)
for k, v in node.pairs(obj) do
if isinstance(v, node.TreeNode) then
v = node.path(v)
- v = {value=v, ['ui-value']=pth.name(v), path=true}
+ v = not pth.is_subordinate(context.path, v) and {
+ value=v, ['ui-value']=pth.name(v), path=true
+ } or nil
else v = {value=pth.escape(v), ['ui-value']=v} end
- table.insert(res.choice, v)
+ if v then table.insert(res.choice, v) end
end
return res