2016-04-29 3 views

ответ

1

Вы можете создать remote hook для встроенного метода входа.

в user.js

module.exports = User => { 
    User.afterRemote('login', async (ctx, usr, next) => { 
    let roleMaps = await User.app.models.RoleMapping.find({ where: { principalId: usr.userId } }) 
    let roleIds = roleMaps.map(roleMap => { return roleMap.roleId }) 
    let roles = await User.app.models.Role.find({ where: { id: { inq: roleIds } } }) 
    usr.roles = roles 
    next() 
    }) 
} 

Примечание: Я использую ES6 и частично ES7 (асинхронная/ждать), но вы можете легко переписать его ES5.

Другим вариантом было бы создать отношения между вашими пользователями и ролями, а затем использовать include filter или scopes.

+0

Не забывайте, что вы, вероятно, не хотите настраивать пользователя, а скорее свою собственную модель, расширяющую пользователя. –

Смежные вопросы