Можно ли использовать хук типа 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;
};
};
Заранее спасибо!