2016-04-29 5 views

Antwort

1

Sie können eine remote hook für die integrierte Login-Methode erstellen.

in 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() 
    }) 
} 

Hinweis: Ich verwende ES6 und teilweise ES7 (async/erwarten), aber man kann es leicht zu ES5 umschreiben. Eine andere Option wäre, eine Beziehung zwischen Ihren Benutzer- und Rollenmodellen zu erstellen und dann include filter oder scopes zu verwenden.

+0

Vergessen Sie nicht, dass Sie wahrscheinlich nicht Benutzer anpassen möchten, sondern Ihr eigenes Modell, das den Benutzer erweitert. –

Verwandte Themen