【问题标题】:Accessing a distant relation using $owner in loopback在环回中使用 $owner 访问远距离关系
【发布时间】:2017-07-13 22:56:53
【问题描述】:

我刚开始使用环回,我被 ACL 卡住了。我的数据库有这样的关系:

  • 用户有很多测试,测试有很多用户(多对多,在环回中我使用 hasmanythrough)。
  • 每个测试都有几个部分(一对多)
  • 每个部分都有几个问题(一对多)

现在,我想获取用户拥有的所有部分,或用户拥有的所有问题。我知道在各自的模型中使用 $owner 需要一个 belongsTo ,但在我的情况下这是不可能的。 有什么方法可以实现这一点而不必完全编写我自己的查询?

【问题讨论】:

  • 为什么在各自的模型中 belongsTo 是不可能的?无论如何,您可以使用dynamic role resolver 自己编写类似于$owner 的内容。这对你有用吗?

标签: loopbackjs


【解决方案1】:

不幸的是,$owner 角色不能用作过滤器,而是在指定实例 ID 时用作对端点的安全访问;基本上它只在您执行 findById 时有效,但在您执行 find 时无效。

例子:

GET /api/tests/ 什么都不做。当前用户看到所有测试。不进行过滤

GET /api/tests/{id} 检查当前登录的 userId 是否与您尝试检索的测试中的 userId 相对应。如果 userIds 匹配,则用户可以查看此特定测试。如果它们不匹配,那么您会收到 AUTHORIZATION_REQUIRED 或 ACCESS_DENIED 错误(我不记得是哪个)。

正如我刚刚在question 中所写,您可能想看看创建一个 Mixin。

【讨论】:

    猜你喜欢
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    相关资源
    最近更新 更多