2016-01-18 56 views
1

我一直在研究環回/ Strongloop文檔,並且我不清楚可以動態地將新用戶添加到角色(即通過角色映射將用戶添加到角色),也就是說,不需要重新啓動API。將用戶動態添加到環回角色

任何人都可以確認一種方式或其他? (理想情況下,但不一定,指向我的一些文檔或示例來確認這是否可行)。

非常感謝。

回答

3

可以在strongloop爲用戶創建rolemappings像這樣的東西 -

Role.find({where: {name: roleName}}, function(err, role) { 
     if (err) {return console.log(err);} 

     RoleMapping.create({ 
      principalType: "USER", 
      principalId: userId, 
      roleId: role.id 
     }, function(err, roleMapping) { 

      if (err) {return console.log(err);} 

      console.log('User assigned RoleID ' + role.id + ' (' + ctx.instance.type + ')'); 

     }): 

     }); 

現在,你必須執行此代碼無論是在after save操作鉤或如果你定義了任何遠程方法來創建你的用戶將不得不尋找一個遠程掛鉤後,這樣做,因爲你需要用戶的id只有在用戶保存在數據庫後纔可用

如果您使用的是一些操作掛鉤,那麼它會是這樣的 -

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 + ')'); 

     }): 

     }); 

    } 
    } 
    next(); 
}); 
+0

非常感謝這個答案。然而,完美地支持這項法案,似乎我太低而無法投票。乾杯。 –

+0

@ digerati-stratagies我敲響了鍾。 –

相關問題