2016-07-07 77 views
0

我創建了一個擴展User的模型,並重寫了create方法,因爲我需要額外的邏輯(在server/models/person.js中)。我創建的用戶沒有問題,並已通過API(名爲'user'和'admin')註冊了兩個角色。我需要的是將新用戶分配給其中一個角色('用戶')。我該怎麼做?Loopback 3創建用戶並分配角色

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

我找到了一種方法,我創建人與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); 
      } 
     }); 
     }); 
    } 
}); 

這是好嗎?

0

Role實例和分配角色的人是這樣的:

role.principals.create({ 
        principalType: RoleMapping.ACCOUNT, 
        principalId: person.id 
       }); 
相關問題