From 7f2ca9c42835c15d36c9adb13e172475542453d5 Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Fri, 21 Feb 2014 11:13:17 +0200 Subject: model: collection member name checking --- acf2/model/init.lua | 1 + acf2/model/node.lua | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3