【问题标题】:Use of ParseRoles manage admin user roles among groups使用 ParseRoles 管理组之间的管理员用户角色
【发布时间】:2015-10-01 00:04:09
【问题描述】:

我刚刚使用 Parse.com 一周,我正在使用它来编写一个简单的 Android 应用程序。我正在寻找一些关于如何处理涉及用户角色的特定多对多关系的建议。

所以我的应用基本上由用户和组组成。现在一个用户可以属于多个组,一个组可以有多个用户。这是一个经典的多对多问题,我相信我可以使用此处描述的内容来实现:

https://www.parse.com/docs/android/guide#relations-many-to-many

但是,我对此略有不同。用户也可能是他们所属的某些组中的管理员,使他们能够执行一些附加功能,同时在其他组中是普通用户。我最初考虑使用两种不同的关系,一种用于“用户”,一种用于“管理员”。但后来我在定义角色和访问权限时偶然发现了 ParseRoles。

但是,我对是否可以使用 ParseRoles 来实现用户可以是某些组中的管理员而不是其他组的情况感到困惑,因为在我看来 ParseRoles 定义了一个“全局”角色,该角色将扩展到应用程序。但我可能错了。

非常感谢您对此的任何帮助。干杯!

【问题讨论】:

  • 嗨,您是否能够实施下面所述的第二种方法?你是怎么做到的?
  • 嗨约翰,我实际上放弃了这个并开始做其他事情......

标签: android parse-platform user-roles


【解决方案1】:

有两种方法:

(1) 使用解析__Role 类并为每个组定义一个管理员__Role。您将创建一个通用管理员__Role,并在创建(和销毁)组时,通过更改其roles 关系向通用角色添加(和删除)子角色。 (例如,在创建 GroupA 时,创建并保存一个名为 GroupAAdmin 的通用管理员角色的子角色。

然后,您将为每个 Group 对象提供一个 ACL,该 ACL 为该组的管理员角色的成员指定权限。可能主要是编写该组对象的能力。

(2) 想法 (1) 意味着你需要非常擅长操纵角色和 ACL,设置一个可以管理角色的角色,afterSave 钩子等等......其中有几个挑战,如果你没有以前没有做过这些事情。

更简单,但不太安全且功能较少,您可以为每个组分配另一个名为 admin 的属性,它是指向 __User 的指针。然后让您的应用有责任在采取任何修改组的操作之前检查当前用户是否等于组的管理员用户。

【讨论】:

  • 我同意 - 第一种方法要复杂得多,因为我现在只是想在家人和朋友之间进行原型制作。我可能会尝试第二种方法,如果我有任何问题,请告诉您。谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-02-15
  • 2016-01-24
  • 2020-10-22
  • 2020-06-06
  • 1970-01-01
  • 2017-10-12
  • 2016-12-17
  • 2015-07-29
相关资源
最近更新 更多