Как добавить контекст в хук Sequelize?
Я хочу использовать ловушку для контроля доступа к строке, чтобы пользователи могли получать доступ только к своим строкам. Хук добавит дополнительное условие where, чтобы гарантировать, что пользователь является владельцем строки (например: WHERE ownerId=user.id).
Проблема в том, как передать идентификатор пользователя в Sequelize, чтобы он был у хука, когда он срабатывает? Я просмотрел документацию, и для меня не очевидно, возможно ли это.
Спасибо
ссылка: http://sequelize.readthedocs.org/en/latest/docs/hooks/
1 ответ
Чтобы добавить контекст, вы можете включить все, что вам нравится в объекте параметров. Например, скажем, вы используете Model.findAll()
, Вы должны настроить свои параметры так:
options = {
attributes: ['id', 'column1', 'column2'],
where: { someColumn: 'aValue' }
}
options.context = 'foo';
Затем в хуке вы сможете получить доступ к options.context и использовать его по своему усмотрению. Конечно, вам, вероятно, не следует использовать "зарезервированные" слова, используемые Sequelize для фильтрации запросов.