使用 common / models / model.js 中的代码,我可以为模型添加自定义验证功能:
module.exports = function(model) {
model.validate('property', validatorCallback, { message: 'Message.' });
function validatorCallback(err) {
// How to access userId and assigned user roles here?
}
};
但是如何在验证功能中访问当前用户的userId和角色?
答案 0 :(得分:1)
答案 1 :(得分:1)
看起来目前这是不可能的。 Github上有一个正在进行的工作问题:WIP: Custom validator promises and options #1229
我现在的解决方案是在保存之前添加 operation hook并在那里验证值。在保存前挂钩中,上下文可用,可用于访问ctx.options.accessToken.userId
。如果该值无效,我将其设置为特定的无效值(在我的情况下为-1)。然后我可以简单地添加一个排除-1的验证器:
validatesExclusionOf('validatedProperty', { in: [-1], message: 'Invalid value.' });
在保存操作挂钩之前使用的优点是,无论模型如何访问/更改,它都会运行。通过使用内置的validatesExclusionOf
验证器,我得到了标准的ValidationError响应。