是否可以在Loopback的远程方法中访问当前用户的角色?

DrB*_*eza 2 strongloop loopbackjs

是否可以在Loopback的远程方法中访问当前用户的角色?

我试图允许远程方法使用where过滤器和当前userId返回基于查找的数据子集,但在admin用户的情况下,我只想返回一整套数据.

所以我一直在尝试获取当前用户的角色列表.但我正在努力使Role.getRoles()返回除以下之外的任何东西:

[ '$unauthenticated', '$everyone' ]
Run Code Online (Sandbox Code Playgroud)

我已经尝试了上下文loopback.getCurrentContext()和传递给beforeRemote方法的上下文,我尝试过ACL.checkAccessForContext().

任何帮助,将不胜感激.

jak*_*lla 7

出现这种情况的原因有很多,其中一个原因是Role模型与您的User模型无关(请参阅此处以获得简要说明).你能检查一下吗?

除此之外,它可能是第一个参数(上下文),我们需要有更好的文档(抱歉:().如果你看一下角色类测试,你可以看到如何使用它.

var RoleMapping = loopback.RoleMapping;
RoleMapping.attachTo(ds); // `ds` is your data source

// ...

Role.getRoles({principalType: RoleMapping.USER, principalId: user.id}, function(err, roles) {
    console.log(roles);  // everyone, authenticated, etc (hopefully)
});
Run Code Online (Sandbox Code Playgroud)