2016-01-18 53 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我敲响了钟。 –

相关问题