我已经阅读了 Parse 文档并使用了 ACL,但我找不到一种方法来创建类似于我在 Firebase 中为另一个项目创建的规则。
我打算使用 PHP SDK,但任何代码都可以作为示例。
假设我有一个名为 product 的项目。
此产品具有以下字段:
name
- 字符串文本字段,仅作为示例owner
- 指针<_user>拥有产品的用户useraccess
- Relation<_user> 有权访问产品的用户(不同于所有者)groups
- 可以访问产品的关系<_group> 组group 表具有以下字段:
name
- 字符串组名,唯一users
- Relation<_user> 该组的用户(一个用户可以在多个组中,一个组可以有多个用户)假设默认情况下没有人对产品具有读或写访问权限。
具有“管理员”角色的用户将具有对该对象的读写访问权限(使用基于规则的 ACL 可轻松完成),但我需要允许对以下内容的读取访问权限:
owner
字段匹配的用户 - 在 owner
字段上使用 CPL 完成useraccess
关系中的用户必须对该项目具有读取权限 - 找不到解决方案groups
关系指定的一个组中的用户必须对该项目具有读取权限 - 可以'找到解决方案可能的解决方法:
问题 2. 可以通过将 useraccess
中的所有用户添加到每个项目的 ACL 中来解决;如果可能的话,我想避免为每个项目指定 ACL(如果发生变化,所有受影响的项目都必须更新 ACL),而只需为该类添加一个 ACL(就像我在 Firebase 中所做的那样)。
问题 3. 可以通过创建规则而不是组来解决(例如,如果用户在 ID 为 123 的组中,它将具有角色“组:123”),但这不是最佳的,可能会导致不一致。< /p>