随着时间的推移,如何为多个 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 对象时,您添加角色 viewer
和 editor
作为 post 对象的 ACL。例如,查看者角色只能具有读取权限,而编辑者可能具有读取和写入权限。
对于每个组织:
- 首先你创建一个角色名
uniqueOrganizationName
- 然后将属于该组织的所有用户添加到
uniqueOrganizationName
个用户(关系)。
现在,将来,如果您想将该组织的所有用户添加到 editorRole
,而不是将 editorRole
添加到所有用户对象,您可以添加 uniqueOrganizationName
到 editorRole
个角色。现在,该组织的所有用户都可以修改所有 post。如果您希望组织的某些用户能够编辑 post,请将这些用户添加到 editorRole
个用户。
注意:此方法是全局。因此组织编辑器可以编辑所有 posts 对象。如果您想限制组织的编辑者只能编辑 post 个属于该组织的人:
- 为每个组织创建两个独特的角色
viewUniqueOrganizationRole
& editUniqueOrganizationRole
。
现在,当您创建一个新的 post 时,根据 post 所属的组织,您将 viewUniqueOrganizationRole
&& editUniqueOrganizationRole
添加到 post对象。
- 在此之后,您可以将用户添加到
viewUniqueOrganizationRole
以便能够查看 post 属于该组织,或者您可以将用户添加到 editUniqueOrganizationRole
这样他们就可以编辑您的post.
希望我能回答你的问题。这是一个复杂的设计。
以下大部分内容都是使用解析仪表板完成的,所以有点罗嗦,但我只理解代码而不是关系。
我正在设置 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 对象时,您添加角色
viewer
和editor
作为 post 对象的 ACL。例如,查看者角色只能具有读取权限,而编辑者可能具有读取和写入权限。
对于每个组织:
- 首先你创建一个角色名
uniqueOrganizationName
- 然后将属于该组织的所有用户添加到
uniqueOrganizationName
个用户(关系)。
现在,将来,如果您想将该组织的所有用户添加到 editorRole
,而不是将 editorRole
添加到所有用户对象,您可以添加 uniqueOrganizationName
到 editorRole
个角色。现在,该组织的所有用户都可以修改所有 post。如果您希望组织的某些用户能够编辑 post,请将这些用户添加到 editorRole
个用户。
注意:此方法是全局。因此组织编辑器可以编辑所有 posts 对象。如果您想限制组织的编辑者只能编辑 post 个属于该组织的人:
- 为每个组织创建两个独特的角色
viewUniqueOrganizationRole
&editUniqueOrganizationRole
。
现在,当您创建一个新的 post 时,根据 post 所属的组织,您将 viewUniqueOrganizationRole
&& editUniqueOrganizationRole
添加到 post对象。
- 在此之后,您可以将用户添加到
viewUniqueOrganizationRole
以便能够查看 post 属于该组织,或者您可以将用户添加到editUniqueOrganizationRole
这样他们就可以编辑您的post.
希望我能回答你的问题。这是一个复杂的设计。