LuxChat  2.0
Instant messenger for iOS
PFACL.h
1 
10 #import <Foundation/Foundation.h>
11 
12 NS_ASSUME_NONNULL_BEGIN
13 
14 @class PFRole;
15 @class PFUser;
16 
23 @interface PFACL : NSObject <NSCopying, NSCoding>
24 
26 #pragma mark - Creating an ACL
27 
34 + (instancetype)ACL;
35 
41 + (instancetype)ACLWithUser:(PFUser *)user;
42 
44 #pragma mark - Controlling Public Access
45 
50 @property (nonatomic, assign, getter=getPublicReadAccess) BOOL publicReadAccess;
51 
55 @property (nonatomic, assign, getter=getPublicWriteAccess) BOOL publicWriteAccess;
56 
58 #pragma mark - Controlling Access Per-User
59 
67 - (void)setReadAccess:(BOOL)allowed forUserId:(NSString *)userId;
68 
78 - (BOOL)getReadAccessForUserId:(NSString *)userId;
79 
86 - (void)setWriteAccess:(BOOL)allowed forUserId:(NSString *)userId;
87 
97 - (BOOL)getWriteAccessForUserId:(NSString *)userId;
98 
105 - (void)setReadAccess:(BOOL)allowed forUser:(PFUser *)user;
106 
116 - (BOOL)getReadAccessForUser:(PFUser *)user;
117 
124 - (void)setWriteAccess:(BOOL)allowed forUser:(PFUser *)user;
125 
135 - (BOOL)getWriteAccessForUser:(PFUser *)user;
136 
138 #pragma mark - Controlling Access Per-Role
139 
149 - (BOOL)getReadAccessForRoleWithName:(NSString *)name;
150 
157 - (void)setReadAccess:(BOOL)allowed forRoleWithName:(NSString *)name;
158 
167 - (BOOL)getWriteAccessForRoleWithName:(NSString *)name;
168 
175 - (void)setWriteAccess:(BOOL)allowed forRoleWithName:(NSString *)name;
176 
188 - (BOOL)getReadAccessForRole:(PFRole *)role;
189 
199 - (void)setReadAccess:(BOOL)allowed forRole:(PFRole *)role;
200 
212 - (BOOL)getWriteAccessForRole:(PFRole *)role;
213 
223 - (void)setWriteAccess:(BOOL)allowed forRole:(PFRole *)role;
224 
226 #pragma mark - Setting Access Defaults
227 
240 + (void)setDefaultACL:(nullable PFACL *)acl withAccessForCurrentUser:(BOOL)currentUserAccess;
241 
242 @end
243 
244 NS_ASSUME_NONNULL_END
BOOL publicWriteAccess
Definition: PFACL.h:55
BOOL publicReadAccess
Definition: PFACL.h:50
Definition: PFACL.h:23
instancetype ACL()