【问题标题】:Loopback - Filter results of GET based on UserLoopback - 根据用户过滤 GET 的结果
【发布时间】:2016-10-28 09:45:51
【问题描述】:

我基本上设置了 3 个模型:

承包商(扩展用户模型) 公司 门票

Ticket 属于 Contractor,也属于 Company 承包商有许多公司 公司有很多承包商

基本上,承包商可以创建工单。当他这样做时,他会传递他工作的contractorId 和CompanyID。

我想要实现的是能够在该承包商登录并在 /tickets 上请求 GET 时检索属于该承包商的所有票证。

同样,如果公司管理员登录,他们应该能够检索归属于该公司的所有工单。

我想我会设置一些远程方法,但是如何根据 ContractorId 或 Contractor 所属的公司进行过滤?

谢谢

【问题讨论】:

    标签: node.js loopbackjs strongloop


    【解决方案1】:

    你的问题有点模棱两可。 Loopback 模型具有 find 方法,该方法接受过滤器作为常见 SQL 中 WHERE 子句中使用的参数。 https://docs.strongloop.com/display/public/LB/Querying+data

    如果您询问获取当前用户 ID,请参阅此文档 https://docs.strongloop.com/display/public/LB/Using+current+context 可以从令牌实例中检索用户 ID。

    最重要的是,我建议您遵循环回文档的每个起始指南。过滤模型不是一项特殊的任务,所以看起来你跳过了一些重要的指南文档。

    【讨论】:

    • 抱歉,可能措辞不正确。我知道如何过滤以获取信息,我所追求的是如何阻止承包商检索其他承包商的票。
    • 例如,如果我的承包商 ID 是 1,我可以通过转到 /contractors/1/tickets 轻松获得我的票。但是,如何阻止用户请求 /contractors/2/tickets 并获取 ID 为 2 的 Contractor 的票。
    • 阅读本文。特别是 ACL 部分。 (门禁)docs.strongloop.com/display/public/LB/…
    • 当你创建你的 preject 并运行时,loopback 会自动运行 api explorer。 loopback.io/doc/en/lb2/Use-API-Explorer。在测试时它可能会对您有很大帮助。
    【解决方案2】:

    如果有人遇到这个问题,答案就在于访问相关模型。

    http://loopback.io/doc/en/lb2/Accessing-related-models.html

    那里列出了这些方法,可以在 ACLS 中使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-27
      • 2019-03-17
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多