随着时间的推移,如何为多个 Parse.Objects 和用户正确使用 Parse.Roles 关系?

How do I correctly use Parse.Roles relationships for multiple Parse.Objects and Users over time?

以下大部分内容都是使用解析仪表板完成的,所以有点罗嗦,但我只理解代码而不是关系。

我正在设置 Parse.Roles,似乎每个人 Parse.Object 都需要设置角色才能访问给定的 Parse.Object。例如,对象 ACL 需要同时包含 "Admin" 和 "Moderator"(具有各自的权限),管理员或版主才能访问。

由于父角色和子角色是可能的,因此使用 "Organization" 角色设置 Parse.Object 的 ACL 是有意义的,然后由子角色进一步修改。因此,"Organization" 中的 "Viewer" 不能写入,但 "Organization" 中的 "Admin" 可以 Read/Write。我已经尝试了多种方法来做到这一点 - 将一个用户关联到 "Viewer" 并将一个用户关联到 "Organization" 中的 "Admin" 但这似乎不起作用。

我当前的解决方案:到manually/programmatically设置每个Parse.Object具有多个预设角色的ACL。例如。使用 ACL 角色 "Viewer" 和 "Admin" 解析 Class "Person"。

问题:如果我以后想为同一个组织创建不同的角色,我是否需要遍历每个 Parse.Object 并手动设置新角色每个过去对象的作用?

这些关系应该由父组织管理,这样就不需要手动完成,但这似乎行不通。

欢迎提供任何答案、想法或链接。

正如您所说,角色可以拥有角色并继承其父角色的特权。

因此,如果新角色适用于 class 的所有对象或其中的一组对象,则无需遍历所有解析对象。

我举个例子:

假设您有一个 class 命名的帖子。

  • 您有一个角色名称 viewer,并且您有一个名为 editor 的角色。

  • 当您创建一个新的 post 对象时,您添加角色 viewereditor 作为 post 对象的 ACL。例如,查看者角色只能具有读取权限,而编辑者可能具有读取和写入权限。

对于每个组织:

  • 首先你创建一个角色名uniqueOrganizationName
  • 然后将属于该组织的所有用户添加到 uniqueOrganizationName 个用户(关系)。

现在,将来,如果您想将该组织的所有用户添加到 editorRole,而不是将 editorRole 添加到所有用户对象,您可以添加 uniqueOrganizationNameeditorRole 个角色。现在,该组织的所有用户都可以修改所有 post。如果您希望组织的某些用户能够编辑 post,请将这些用户添加到 editorRole 个用户。

注意:此方法是全局。因此组织编辑器可以编辑所有 posts 对象。如果您想限制组织的编辑者只能编辑 post 个属于该组织的人:

  • 为每个组织创建两个独特的角色 viewUniqueOrganizationRole & editUniqueOrganizationRole

现在,当您创建一个新的 post 时,根据 post 所属的组织,您将 viewUniqueOrganizationRole && editUniqueOrganizationRole 添加到 post对象。

  • 在此之后,您可以将用户添加到 viewUniqueOrganizationRole 以便能够查看 post 属于该组织,或者您可以将用户添加到 editUniqueOrganizationRole 这样他们就可以编辑您的post.

希望我能回答你的问题。这是一个复杂的设计。