【问题标题】:Dynamically adding user to a loopback Role将用户动态添加到环回角色
【发布时间】:2017-12-08 00:19:58
【问题描述】:

我一直在研究 loopback / Strongloop 文档,我不清楚是否可以动态地将新用户添加到角色(即通过角色映射将用户添加到角色),也就是说,没有需要重启 API。

任何人都可以确认一种或另一种方式吗? (理想情况下,但不一定,将我指向一些文档或示例以确认是否可行)。

非常感谢。

【问题讨论】:

  • strongloop 效果如何?考虑到缺少文档/教程,感觉舒服吗?

标签: loopbackjs strongloop


【解决方案1】:

您可以使用类似这样的方式为 strongloop 中的用户创建角色映射 -

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 操作挂钩中执行此代码,或者如果您已定义任何用于创建用户的远程方法,您将必须寻找一个 after 远程挂钩并执行此操作,因为您需要 @987654323用户的@,只有在用户保存到数据库后才可用

如果你使用了一些操作钩子,那么它会是这样的 -

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();
});

【讨论】:

  • 非常感谢您的回答。完全符合该法案,但是,我似乎在梯级上太低了,无法投票。干杯。
  • @digerati-stratagies 我按铃了。
猜你喜欢
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
相关资源
最近更新 更多