在添加用户时,在与用户对应的roleMapping中添加数据的最佳做法是什么。
1)在model-config中设置关系,是否会添加roleMapping数据?
2)在用户的保存挂钩后,需要手动添加如下所述的roleMapping:[Link] [1]。
[1]:Dynamically adding user to a loopback Role,如下所示:
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 + ')');
}):
});
}
} 下一个(); });
答案 0 :(得分:0)
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);
}
role.principals.create({
principalType: RoleMapping.USER,
principalId: ctx.instance.id
}, function(err, roleMapping) {
if (err) {
return console.log(err);
}
console.log('User assigned RoleID ' + role.id + ' (' + ctx.instance.type + ')');
}):
});
}
}
next();
});
根据我对环回的理解,用户和角色通过RoleMapping模型连接。即。用户通过RoleMapping或反之亦然有很多角色。
你所写的内容也可以这样做。
在principalType
中,您可以指定所需的任何字符串。如果您提供RoleMapping.USER
,则会在数据库中显示USER
。