以下大部分内容都是通过解析仪表板完成的,所以有点啰嗦,但我理解的是代码而不是关系。
我正在设置 Parse.Roles,似乎每个单独的 Parse.Object 都需要设置角色才能访问给定的 Parse.Object。例如,对象 ACL 需要包含“管理员”和“版主”(具有各自的权限),以便管理员或版主具有访问权限。
由于父角色和子角色都是可能的,因此使用“组织”角色设置 Parse.Object 的 ACL 是有意义的,然后由子角色进一步修改该 ACL。因此,“组织”内的“查看者”无法写入,但“组织”内的“管理员”可以读取/写入。我尝试了多种方法来执行此操作 - 将一个用户关联到“查看者”,将一个用户关联到“组织”内的“管理员”,但这似乎不起作用。
我当前的解决方案:以手动/编程方式设置每个 Parse.Object ACL 与多个预设角色。例如。使用 ACL 角色“查看者”和“管理员”解析类“Person”。
问题:如果我想在将来为同一个组织创建不同的角色,我是否需要循环遍历每个 Parse.Object 并为每个过去的对象手动设置新角色?
这些关系应该由父组织管理,这样就不需要手动完成,这是有道理的,但这似乎不起作用。
任何答案、想法或链接都值得赞赏。
最佳答案
正如您所提到的,角色可以拥有角色并继承其父角色的权限。
因此,如果新角色适用于一个类或一组类的所有对象,则无需循环遍历所有解析对象。
我给你举个例子:
假设您有一个名为 Posts 的类。
您有一个名为
viewer
的角色,还有一个名为editor
的角色。当您创建新的帖子对象时,您将添加角色
viewer
和editor
作为帖子对象的 ACL。例如,查看者角色只能具有读取访问权限,而编辑者角色可以同时具有读取和写入访问权限。
对于每个组织:
- 首先创建一个角色名称
uniqueOrganizationName
- 然后,将属于该组织的所有用户添加到
uniqueOrganizationName
用户(关系)。
现在,将来,如果您想要将该组织的所有用户添加到例如 editorRole
中,您可以添加uniqueOrganizationName
到 editorRole
角色。现在,该组织的所有用户都可以修改所有帖子。如果您希望组织的某些用户能够编辑帖子,请将这些用户添加到 editorRole
用户。
注意:此方法是全局的。因此组织编辑可以编辑所有帖子对象。如果您想限制某个组织的编辑者只能编辑属于该组织的帖子:
- 为每个组织创建两个独特的角色
viewUniqueOrganizationRole
和editUniqueOrganizationRole
。
现在,当您创建新帖子时,根据帖子所属的组织,将 viewUniqueOrganizationRole
&& editUniqueOrganizationRole
添加到帖子对象的 ACL。
- 此后,您可以将用户添加到
viewUniqueOrganizationRole
中,以便能够查看属于该组织的帖子,也可以将用户添加到editUniqueOrganizationRole
中,以便他们可以编辑您的帖子.
希望我能回答你的问题。这是一个复杂的设计。
关于node.js - 随着时间的推移,如何正确使用多个 Parse.Objects 和用户的 Parse.Roles 关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52563147/