关系和组的类级别权限/ACL

时间:2021-05-05 08:27:32

标签: parse-platform relationship acl

我已经阅读了 Parse 文档并使用了 ACL,但我找不到一种方法来创建类似于我在 Firebase 中为另一个项目创建的规则。

我打算使用 PHP SDK,但任何代码都可以作为示例。

假设我有一个名为 product 的项目。

产品具有以下字段:

  • name - 字符串文本字段,仅作为示例
  • owner - 指针<_user>拥有产品的用户
  • useraccess- Relation<_user> 有权访问产品的用户(不同于所有者)
  • groups - 可以访问产品的关系<_group> 组

group 表具有以下字段:

  • name - 字符串组名,唯一
  • users - Relation<_user> 该组的用户(一个用户可以在多个组中,一个组可以有多个用户)

假设默认情况下没有人对产品具有读或写访问权限。

具有“管理员”角色的用户将具有对该对象的读写访问权限(使用基于规则的 ACL 可轻松完成),但我需要允许对以下内容的读取访问权限:

  1. owner - id 与 owner 字段匹配的用户 - 在 owner 字段上使用 CPL 完成
  2. useraccess 中的用户 - useraccess 关系中的用户必须对该项目具有读取权限 - 找不到解决方案
  3. 与组字段匹配的组中的用户 - 至少在 groups 关系指定的一个组中的用户必须对该项目具有读取权限 - 可以'找到解决方案

可能的解决方法:

问题 2. 可以通过将 useraccess 中的所有用户添加到每个项目的 ACL 中来解决;如果可能的话,我想避免为每个项目指定 ACL(如果发生变化,所有受影响的项目都必须更新 ACL),而只需为该类添加一个 ACL(就像我在 Firebase 中所做的那样)。

问题 3. 可以通过创建规则而不是组来解决(例如,如果用户在 ID 为 123 的组中,它将具有角色“组:123”),但这不是最佳的,可能会导致不一致。< /p>

0 个答案:

没有答案