diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-21 11:13:17 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-21 13:13:28 +0200 |
commit | 7f2ca9c42835c15d36c9adb13e172475542453d5 (patch) | |
tree | d87f26850f80656be8693c520165011db26f54f7 | |
parent | c90ff48c00b0fcd27284c30625b66350e1731739 (diff) | |
download | aconf-7f2ca9c42835c15d36c9adb13e172475542453d5.tar.bz2 aconf-7f2ca9c42835c15d36c9adb13e172475542453d5.tar.xz |
model: collection member name checking
-rw-r--r-- | acf2/model/init.lua | 1 | ||||
-rw-r--r-- | acf2/model/node.lua | 12 |
2 files changed, 12 insertions, 1 deletions
diff --git a/acf2/model/init.lua b/acf2/model/init.lua index bc0dc47..376ec64 100644 --- a/acf2/model/init.lua +++ b/acf2/model/init.lua @@ -206,6 +206,7 @@ function M.Collection:init(params, itype) self.iparams = { destroy=self.destroy, editable=self:_editable(), + key=self.key, layout=self.layout, required=self.required, ui_member=self.ui_member 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 |