2017-02-09 6 views
0

ユーザーを追加する際に、ユーザーに対応するroleMappingでデータを追加することをお勧めします。ループバック - ユーザーがroleMappingデータを追加していません

1)roleMappingデータを追加するかどうかに関係なく、model-configに関係を設定しますか?

2)ユーザの保存後のフックで、ここで参照されている[リンク] [1]のようなroleMappingを手動で追加する必要があります。

[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またはviceversaによるロールが多数あります。

あなたが書いたことは、このようにすることもできます。

principalTypeには、任意の文字列を指定できます。 RoleMapping.USERを入力すると、データベースにUSERと表示されます。

関連する問題