如何根据应用的 acl 限制在回送 3 中调用模型 "find" 的数据?
How to restrict data which comes from calling "find" of model in loopback 3 based on acl applied?
考虑了三个模型,与此问题相关的领域如下 -
用户 - id
项目 - id,project_name
ProjectMember - id, user_id, project_id
当我调用 "find" 时,它列出了所有适合 "admin" 用户的项目,但对于 "non admin" 用户,我只想显示他们的项目。
在环回 3 中实现此目的的最佳方法是什么?我是否需要覆盖 "find" 或者是否有任何我缺少的回送方式?
我会选择 before remote
钩子:
Project.beforeRemote( 'find', function( ctx, next) {
// here you can modify your query by adding a role based filter to your query
next();
});
甚至更好access
操作挂钩:
Project.observe('access', function( ctx, next) {
// here you can modify your query by adding a role based filter to your query
next();
});
在那里你可以 运行 额外的查询来检查给定的用户是否有权访问给定的项目实例。
考虑了三个模型,与此问题相关的领域如下 -
用户 - id
项目 - id,project_name
ProjectMember - id, user_id, project_id
当我调用 "find" 时,它列出了所有适合 "admin" 用户的项目,但对于 "non admin" 用户,我只想显示他们的项目。
在环回 3 中实现此目的的最佳方法是什么?我是否需要覆盖 "find" 或者是否有任何我缺少的回送方式?
我会选择 before remote
钩子:
Project.beforeRemote( 'find', function( ctx, next) {
// here you can modify your query by adding a role based filter to your query
next();
});
甚至更好access
操作挂钩:
Project.observe('access', function( ctx, next) {
// here you can modify your query by adding a role based filter to your query
next();
});
在那里你可以 运行 额外的查询来检查给定的用户是否有权访问给定的项目实例。