Можно ли использовать крючок как 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;
};
};
Заранее спасибо!
Теперь я на обоих перехватывает необработанное отказ обещание 'Ошибка: Не удается прочитать свойство«получить» неопределенного'. Отладка не помогла выяснить, где происходит ошибка. 'perathers-socket-commons: methods Ошибка вызова пользователей :: patch + 18ms {[TypeError: Не могу прочитать свойство« get »неопределенного]' У вас есть идея? – tan