我有类似的问题,蓝图来解决,我解决了它。
如果我们谈论的蓝图:
当您使用蓝图你可以从req.options.model
modelName
。 我用它来检查用户是否属于与元素相同的组。
不幸的是你不能使用this[modelName]
作为选项,让您开始用小写字母型号,所以首先要与如大写首字母var modelName = req.options.model.charAt(0).toUpperCase() + req.options.model.slice(1);
,然后您可以自由使用this[modelName].whateverYouNeed
我用了通用的政策,让用户编辑只有他自己的组元素。
var modelName = req.options.model.charAt(0).toUpperCase() + req.options.model.slice(1)
var elementID = null
if (req.params.id) { // To handle DELETE, PUT
elementID = req.params.id
}
if (req.body.id) { // To handle POST
elementID = req.body.id
}
this[modelName].findOne({
id: elementID
}).exec(function(err, contextElement) {
if(err) {
return res.serverError(err)
}
if(contextElement.group=== req.user.group.id) {
sails.log('accessing own: ' + modelName)
return next()
}
else {
return res.forbidden('Tried to access not owned object')
}
})
这是一个路由处理?这段代码去哪里? – AskYous
哦。抱歉!这是政策。 –