是否可以像restrictToOwner
在另一个钩子中一样使用钩子?例如,我希望用户一般只能更新他们自己的信息,但我也希望他们能够访问其他用户的特定属性。因此,如果存在特定的查询参数,比如说关于用户的评论,我希望用户通过,否则我想使用restrictToOwner
钩子。当然,我可以编写自己的等效restrictToOwner
钩子,但如果可能的话,我想利用已经存在的钩子(?)。下面的代码不起作用,但我想要类似的东西:
module.exports = function(options) {
return function(hook) {
if (typeof hook.data.comment !== 'undefined')
return hook;
return auth.restrictToOwner({ ownerField: '_id' });
};
};
我想做的另一件事是仅当请求是外部调用时才执行挂钩。我的内部脚本应该可以无限制访问。就像是:
// user/hooks/index.js
exports.before = {
patch: [
globalHooks.ifExternal(auth.restrictToOwner({ ownerField: '_id' }))
]
};
// hooks/index.js
exports.ifExternal = function(func) {
return function(hook) {
if (typeof hook.params.provider === 'undefined') //? if internal
return hook;
return func;
};
};
提前致谢!