summaryrefslogtreecommitdiffstats
path: root/acf2/model/node.lua
diff options
context:
space:
mode:
Diffstat (limited to 'acf2/model/node.lua')
-rw-r--r--acf2/model/node.lua12
1 files changed, 11 insertions, 1 deletions
diff --git a/acf2/model/node.lua b/acf2/model/node.lua
index d9d095d..711680e 100644
--- a/acf2/model/node.lua
+++ b/acf2/model/node.lua
@@ -1,5 +1,5 @@
--[[
-Copyright (c) 2012-2013 Kaarle Ritvanen
+Copyright (c) 2012-2014 Kaarle Ritvanen
See LICENSE file for license details
--]]
@@ -264,7 +264,17 @@ function M.Collection:init(context, params, dtype)
if not params.editable then
raise(mt.path, 'Collection is not editable')
end
+
mt.check_removable(k, v)
+
+ if params.key then
+ local kf = M.BoundMember(self, k, params.key)
+ if kf:normalize(k) ~= k then
+ raise(mt.path, 'Invalid member name: '..k)
+ end
+ kf:validate(k)
+ end
+
mt.member(k):save(v)
end
end