您可以使用类似这样的方式为 strongloop 中的用户创建角色映射 -
Role.find({where: {name: roleName}}, function(err, role) {
if (err) {return console.log(err);}
RoleMapping.create({
principalType: "USER",
principalId: userId,
roleId: role.id
}, function(err, roleMapping) {
if (err) {return console.log(err);}
console.log('User assigned RoleID ' + role.id + ' (' + ctx.instance.type + ')');
}):
});
现在您必须在 after save 操作挂钩中执行此代码,或者如果您已定义任何用于创建用户的远程方法,您将必须寻找一个 after 远程挂钩并执行此操作,因为您需要 @987654323用户的@,只有在用户保存到数据库后才可用
如果你使用了一些操作钩子,那么它会是这样的 -
user.observe('after save', function function_name(ctx, next) {
if (ctx.instance) {
if(ctx.isNewInstance) {
// look up role based on type
//
Role.find({where: {name: 'role-name'}}, function(err, role) {
if (err) {return console.log(err);}
RoleMapping.create({
principalType: "USER",
principalId: ctx.instance.id,
roleId: role.id
}, function(err, roleMapping) {
if (err) {return console.log(err);}
console.log('User assigned RoleID ' + role.id + ' (' + ctx.instance.type + ')');
}):
});
}
}
next();
});