Когда я сохраняю пользователя после создания ассоциации, запускается крючок User.beforeUpdate.Sails js - ассоциация модели save triggers beforeUpdate issue
Проблема, с которой я столкнулась, состоит в том, что аргумент значений по какой-либо причине содержит весь пользовательский объект.
В hook.Ifter User.afterCreate Я связываю пользовательские права на пользователя следующим образом.
Permission.getPermission(path,roleStr)
.then((permission) => {
User.findOne({id:user.id})
.populate('permissions')
.then((resUser) => {
resUser.permissions.add(permission.id);
resUser.save((err) => {
if(err) return deferred.reject(err);
return deferred.resolve();
});
})
.catch((err) => {});
})
.catch(function (err) {
console.log("addPermissionToUser Failed", err);
deferred.reject(err);
});
После вызова метода .save() User.beforeUpate передается этот объект.
{
email: '[email protected]',
firstName: 'Super',
lastName: 'SuperAdmin',
password: '$2a$10$0snWTh65eU9L6gPFYbRAV.seyGSit5v1gefp4asL3MGGKWRlv8QwK',
emailVerified: true,
provider: 'local',
profileCompleted: true,
dob: null,
verificationCode: '1486421848265-AU6A6NHQtY5AU2Bl',
uid: 'super-man',
createdAt: 2017-02-06T22:57:28.471Z,
updatedAt: 2017-02-06T22:57:28.471Z,
id: '5898ff58ffc05b1c221ac262'
}
Потому что есть другая логика в BeforeUpdate, меняющих определенные значения, если они присутствуют получать весь пользовательский объект обратно является проблемой.
Почему объект пользователя передается beforeUpdate? Разве это не должно быть значениями, которые мы явно отправили на маршрут User.update?