2017-02-09 73 views
0

在添加用戶時添加與用戶對應的角色映射中的數據的最佳實踐是什麼?環回 - 添加用戶未添加角色映射數據

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
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

相關問題