У меня есть модель: api/models/Agency.js
SailsJs Защита Blueprints с политиками
attributes: {
// attributes for agency
// One agency can have many owners
owners: {
collection: 'user',
required: true,
via: 'agencies'
},
employees: {
collection: 'user',
via: 'employer'
}
}
Модель имеет многие ко многим отношения с пользователями; так как многие пользователи могут владеть многими агентствами.
Я хочу защитить контроллер Blueprint для агентства (AgencyController.js
) с Политикой называется isOwner.js
; который гарантирует, что Пользователь является владельцем Агентства, прежде чем разрешить им редактировать. Я основывал политику на примере, найденном в Sails.js docs, где я пытаюсь гарантировать, что userId (найденный в сеансе) является владельцем ресурса.
api/policies/isOwner.js
:
module.exports = function(req, res, next) {
var userId = req.session.passport.user;
req.options.where = req.options.where || {};
req.options.where.owners = userId;
return next();
};
Тогда в моем config/policies.js
файл я добавил следующее:
AgencyController: {
destroy: ['isOwner'],
update: ['isOwner']
},
Это не работает. Я думаю, это из-за многих-многих отношений между двумя моделями. Мой вопрос: могу ли я создать политику, которая может запрашивать отношения многих или многих? Или это возможно только в отношениях от одного до многих?
Спасибо.