解析具有角色的用户
Parse Users with Roles
我试图了解如何通过 Parse 最好地实现它的概念。
个人训练应用
一家工作室获取该应用程序来管理他们的客户和培训师。
因此我们有角色。
工作室经理
该用户可以查看应用程序中的所有数据,他们可以编辑客户详细信息、添加客户等。重要的是,他们可以查看所有培训师并查看他们见过多少客户等。
培训师
该用户只能访问他们执行的课程,他们无法看到其他培训师正在接待多少客户。培训师角色仅适用于该特定培训师。
那么是如何实现的呢?
我假设经理设置了他的应用程序,然后创建了 link 到他的帐户的用户帐户?我想这将通过创建用户屏幕来完成,经理可以在其中创建培训师。但是,培训师将无法使用此选项。角色将是培训师,因此创建新用户屏幕将不是一个选项。
例如,经理用户和他们的培训师之间的 link 是如何维护的。因为会有很多经理开户,有很多培训师。如何最好地建立这些关系?我不希望一个工作室的经理能够看到另一个工作室等的所有详细信息
这是否就像让经理用户成为所有其他用户(他的培训师)的 "property" 这样他只能获取和查看这些用户一样简单?
然后您将了解 ACL 与 CLP - 我认为 class 级别适合我的应用程序? This 提供了 2
的比较
抱歉这个冗长的问题,但任何建议都会很好。这 post 给了我一些想法...
创建名为:Managers 的 ACL 组。所有新经理都应该添加到那里。
并且对于每个新数据,您将像这样设置 ACL 权限:
"Client Apple" => "ACL":{"managers":{"read":true},{"write":true},"trainer ObJectId:",{"read":true}}
经理可以读写此客户端,只有创建此客户端的培训师可以读取。
Client *privateData = [PFObject objectWithClassName:@"Client"];
private.name = @"Client Apple";
PFACL *acl = [PFACL ACLWithUser:[PFUser currentUser]];
[acl setPublicWriteAccess:NO];
[acl setPublicReadAccess:NO];
[acl setWriteAccess:YES forUser:[PFUser currentUser]];
[acl setReadAccess:YES forUser:[PFUser currentUser]];
[acl setReadAccess:YES forRoleWithName:@"managers"];
[acl setWriteAccess:YES forRoleWithName:@"managers"];
[privateData setACL:acl];
我试图了解如何通过 Parse 最好地实现它的概念。
个人训练应用
一家工作室获取该应用程序来管理他们的客户和培训师。
因此我们有角色。
工作室经理 该用户可以查看应用程序中的所有数据,他们可以编辑客户详细信息、添加客户等。重要的是,他们可以查看所有培训师并查看他们见过多少客户等。
培训师 该用户只能访问他们执行的课程,他们无法看到其他培训师正在接待多少客户。培训师角色仅适用于该特定培训师。
那么是如何实现的呢?
我假设经理设置了他的应用程序,然后创建了 link 到他的帐户的用户帐户?我想这将通过创建用户屏幕来完成,经理可以在其中创建培训师。但是,培训师将无法使用此选项。角色将是培训师,因此创建新用户屏幕将不是一个选项。
例如,经理用户和他们的培训师之间的 link 是如何维护的。因为会有很多经理开户,有很多培训师。如何最好地建立这些关系?我不希望一个工作室的经理能够看到另一个工作室等的所有详细信息
这是否就像让经理用户成为所有其他用户(他的培训师)的 "property" 这样他只能获取和查看这些用户一样简单?
然后您将了解 ACL 与 CLP - 我认为 class 级别适合我的应用程序? This 提供了 2
的比较抱歉这个冗长的问题,但任何建议都会很好。这 post 给了我一些想法...
创建名为:Managers 的 ACL 组。所有新经理都应该添加到那里。
并且对于每个新数据,您将像这样设置 ACL 权限:
"Client Apple" => "ACL":{"managers":{"read":true},{"write":true},"trainer ObJectId:",{"read":true}}
经理可以读写此客户端,只有创建此客户端的培训师可以读取。
Client *privateData = [PFObject objectWithClassName:@"Client"];
private.name = @"Client Apple";
PFACL *acl = [PFACL ACLWithUser:[PFUser currentUser]];
[acl setPublicWriteAccess:NO];
[acl setPublicReadAccess:NO];
[acl setWriteAccess:YES forUser:[PFUser currentUser]];
[acl setReadAccess:YES forUser:[PFUser currentUser]];
[acl setReadAccess:YES forRoleWithName:@"managers"];
[acl setWriteAccess:YES forRoleWithName:@"managers"];
[privateData setACL:acl];