如何在一段时间内正确使用多个 Parse.Objects 和用户的 Parse.Roles 关系?



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

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

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

我当前的解决方案:手动/编程方式设置具有多个预设角色的每个Parse.ObjectACL。 例如,解析类"人"与ACL角色"查看者"和"管理员"。

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

这些关系应由上级组织管理是有道理的,这样就不需要手动完成此操作,但这似乎不起作用。

任何答案、想法或链接都值得赞赏。

如前所述,角色可以具有角色并继承其父角色的权限。

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

我给你举个例子:

假设您有一个名为 Post 的类。

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

  • 创建新的 POST 对象时,将添加两个角色viewereditor作为 POST 对象的 ACL。例如,查看者角色只能具有读取访问权限,而编辑者可能同时具有读取和写入访问权限。

对于每个组织:

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

现在,将来,如果要将该组织的所有用户添加到例如editorRole,而不是向所有用户对象添加editorRole,则可以将uniqueOrganizationName添加到editorRole角色。现在,该组织的所有用户都可以修改所有帖子。如果您希望组织的某些用户能够编辑帖子,请将这些用户添加到editorRole用户。

注意:此方法是全局的。 因此,组织编辑者可以编辑所有帖子对象。如果要将组织的编辑者限制为只能编辑属于该组织的帖子:

  • 为每个组织创建两个独特的角色viewUniqueOrganizationRoleeditUniqueOrganizationRole

现在,当您创建新帖子时,根据该帖子所属的组织,您将viewUniqueOrganizationRole&&editUniqueOrganizationRole添加到帖子对象的 ACL 中。

  • 在此之后,您可以将用户添加到viewUniqueOrganizationRole以查看属于该组织的帖子,也可以将用户添加到editUniqueOrganizationRole以便他们可以编辑您的帖子。

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

最新更新