我创建了一个扩展User的模型,并覆盖了create方法,因为我需要额外的逻辑(在server / models / person.js中)。我正在创建没有问题的用户,并且已经通过API注册了两个角色(名为“user”和“admin”)。我需要的是将新用户分配给其中一个角色('用户')。我该怎么办?
Person.upsert(obj, function(err, u1) {
if (err != null) {
console.log('Error: ', err);
callback({code: 401, message: err});
} else {
obj.createAccessToken(2629746000, function(err, token) {
if (err) {
callback(err, null);
} else {
obj.token = token;
callback(null, obj);
}
});
}
});
由于
答案 0 :(得分:1)
获取Role
个实例并将角色分配给此人:
role.principals.create({
principalType: RoleMapping.ACCOUNT,
principalId: person.id
});
答案 1 :(得分:0)
我找到了一种方法,我创建了Person和RoleMapping之间的关系:
"relations": {
"roles": {
"type": "hasMany",
"model": "RoleMapping",
"foreignKey": "principalId",
"options": {
"disableInclude": true
}
}
现在我可以通过以下关系调用RoleMapping模型:
Person.upsert(obj, function(err, u1) {
if (err != null) {
console.log('Error: ', err);
callback({code: 401, message: err});
} else {
obj.roles.create({principalType: obj.roles.ROLE, roleId: 'admin'},
function() {
obj.createAccessToken(2629746000, function(err, token) {
if (err) {
callback(err, null);
} else {
obj.token = token;
callback(null, obj);
}
});
});
}
});
这可以吗?