0

我的系统有属于用户的案例。用户是部门的一部分。设置是用户可以访问属于与用户在同一部门的用户的所有案例。

问题是:如果我是 UserX 并且我是 DepartmentA 的一部分,并且还有属于同一部门的 UserY,还有 DepartmentB,以及仅属于 DepartmentB 的第三个 UserZ。像这样的查询允许 UserX 通过 UserY 访问 UserZ 案例:

query {
  me {
    id
    name
    department {
        cases {
            id
            user {
                id
                name
                department {
                    cases {
                        ... ends up listing cases belonging to departments that the user should not have access to
                    }
                }
            }
        }
    }
  }
}

所以我的问题是,我如何控制用户访问以仅返回他们有权访问的案例,无论在什么“上下文”中请求案例。我在 RESTful API 中要做的就是获取一个列表用户可以访问的允许 ID 并通过它进行过滤,但我不确定这是否是在 graphql 解决方案中处理的正确方法。

我真的希望我的问题有意义,并感谢您阅读它。

4

1 回答 1

0

不幸的是,使用 lighthouse-php 是不可行的——这并不是库的真正错误,而是 GraphQL 不够灵活,无法满足你的要求——你真的应该坚持使用 REST 来管理你的数据流。

于 2020-02-28T07:12:08.300 回答