是否可以在 Loopback 的远程方法中获取当前用户的角色?
Is it possible to get the current User’s roles accessible in a remote method in Loopback?
是否可以在 Loopback 的远程方法中获取当前用户的角色?
我正在尝试允许远程方法 return 基于使用 where 过滤器和当前用户 ID 查找的数据子集,但对于管理员用户,我只想 return全套数据
所以我一直在尝试获取当前用户的角色列表。但我正在努力使 Role.getRoles() return 除了:
[ '$unauthenticated', '$everyone' ]
我已经尝试了来自 loopback.getCurrentContext()
的上下文和传递给 beforeRemote
方法的上下文并且我已经尝试了 ACL.checkAccessForContext()
.
如有任何帮助,我们将不胜感激。
发生这种情况的原因有很多,其中之一是 Role
模型与您的 User
模型 (see here for brief explanation) 无关。你能检查一下吗?
除此之外,我们可能需要更好的文档来说明第一个参数(上下文)(抱歉 :( )。如果您查看 tests for the role class,您可以了解如何使用它。
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)
});
是否可以在 Loopback 的远程方法中获取当前用户的角色?
我正在尝试允许远程方法 return 基于使用 where 过滤器和当前用户 ID 查找的数据子集,但对于管理员用户,我只想 return全套数据
所以我一直在尝试获取当前用户的角色列表。但我正在努力使 Role.getRoles() return 除了:
[ '$unauthenticated', '$everyone' ]
我已经尝试了来自 loopback.getCurrentContext()
的上下文和传递给 beforeRemote
方法的上下文并且我已经尝试了 ACL.checkAccessForContext()
.
如有任何帮助,我们将不胜感激。
发生这种情况的原因有很多,其中之一是 Role
模型与您的 User
模型 (see here for brief explanation) 无关。你能检查一下吗?
除此之外,我们可能需要更好的文档来说明第一个参数(上下文)(抱歉 :( )。如果您查看 tests for the role class,您可以了解如何使用它。
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)
});