我使用parse.com作为我的Android应用程序的后端。我需要帮助来解决以下场景。我想做一些访问控制。该应用程序将包含以下用户:超级管理员,管理员,主持人和编辑者。超级管理员可以创建许多管理员(每个管理员都有自己的组),管理员可以在其中创建主持人和编辑者。现在我想为这些用户设置ACL,其中一个组无法读取或写入另一个组的数据。这个场景是否有任何简单的例子。
SUPER ADMIN
|------------------|--------------------|
| | |
ADMIN(Group A) ADMIN(Group B) ADMIN(Group C)
| | |
|-Moderator |-Moderator |-Moderator
| | |
|-Editor1 |-Editor1 |-Editor1
| | |
|-Editor2 |-Editor2 |-Editor2
| |
|-Editor3 |-Editor3
答案 0 :(得分:4)
是的,你可以这样做。角色使用ACL就像其他对象一样。我认为文档中的示例可以回答您的大部分内容:
https://parse.com/docs/android_guide#roles
如果您在解决方案时遇到问题,请尝试并在此处查看具体问题。
从文档中删除:
// By specifying no write privileges for the ACL, we can ensure the role cannot be altered.
ParseACL roleACL = new ParseACL();
roleACL.setPublicReadAccess(true);
ParseRole role = new ParseRole("Administrator", roleACL);
role.saveInBackground();
ParseRole role = new ParseRole(roleName, roleACL);
for (ParseUser user : usersToAddToRole) {
role.getUsers().add(user)
}
for (ParseRole childRole : rolesToAddToRole) {
role.getRoles().add(childRole);
}
role.saveInBackground();
答案 1 :(得分:1)
这是我用于读写的内容,但是使用ParseACL对象,您可以设置所需的一切。
ParseACL defaultACL = new ParseACL();
defaultACL.setPublicReadAccess(true);
ParseACL.setDefaultACL(defaultACL, true);