123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501 |
- #import <Realm/RLMObject.h>
- @protocol RLMPermission, RLMPermissionUser;
- @class RLMPermission, RLMPermissionUser, RLMPermissionRole,
- RLMArray<RLMObjectType>, RLMLinkingObjects<RLMObjectType: RLMObject *>;
- NS_ASSUME_NONNULL_BEGIN
- @interface RLMPermission : RLMObject
- @property (nonatomic) RLMPermissionRole *role;
- @property (nonatomic) bool canRead;
- @property (nonatomic) bool canUpdate;
- @property (nonatomic) bool canDelete;
- @property (nonatomic) bool canSetPermissions;
- @property (nonatomic) bool canQuery;
- @property (nonatomic) bool canCreate;
- @property (nonatomic) bool canModifySchema;
- + (RLMPermission *)permissionForRoleNamed:(NSString *)roleName inArray:(RLMArray<RLMPermission *><RLMPermission> *)array;
- + (RLMPermission *)permissionForRoleNamed:(NSString *)roleName onRealm:(RLMRealm *)realm;
- + (RLMPermission *)permissionForRoleNamed:(NSString *)roleName onClass:(Class)cls realm:(RLMRealm *)realm;
- + (RLMPermission *)permissionForRoleNamed:(NSString *)roleName onClassNamed:(NSString *)className realm:(RLMRealm *)realm;
- + (RLMPermission *)permissionForRoleNamed:(NSString *)roleName onObject:(RLMObject *)object;
- @end
- @interface RLMPermissionRole : RLMObject
- @property (nonatomic) NSString *name;
- @property (nonatomic) RLMArray<RLMPermissionUser *><RLMPermissionUser> *users;
- @end
- @interface RLMPermissionUser : RLMObject
- @property (nonatomic) NSString *identity;
- @property (nonatomic) RLMPermissionRole *role;
- @property (nonatomic, readonly) RLMLinkingObjects<RLMPermissionRole *> *roles;
- + (RLMPermissionUser *)userInRealm:(RLMRealm *)realm withIdentity:(NSString *)identity;
- @end
- @interface RLMRealmPermission : RLMObject
- @property (nonatomic) RLMArray<RLMPermission *><RLMPermission> *permissions;
- + (nullable instancetype)objectInRealm:(RLMRealm *)realm;
- @end
- @interface RLMClassPermission : RLMObject
- @property (nonatomic) NSString *name;
- @property (nonatomic) RLMArray<RLMPermission *><RLMPermission> *permissions;
- + (nullable instancetype)objectInRealm:(RLMRealm *)realm forClassNamed:(NSString *)className;
- + (nullable instancetype)objectInRealm:(RLMRealm *)realm forClass:(Class)cls;
- @end
- struct RLMRealmPrivileges {
-
-
- bool read : 1;
-
-
-
- bool update : 1;
-
-
-
-
-
-
-
-
-
-
-
-
- bool setPermissions : 1;
-
-
-
-
-
- bool modifySchema : 1;
- };
- struct RLMClassPrivileges {
-
-
-
-
-
-
-
- bool read : 1;
-
-
-
-
-
-
-
-
- bool create : 1;
-
-
-
-
-
- bool update : 1;
-
-
-
- bool subscribe : 1;
-
-
-
-
-
-
-
-
-
- bool setPermissions : 1;
- };
- struct RLMObjectPrivileges {
-
-
-
-
-
-
- bool read : 1;
-
-
-
-
-
-
-
- bool update : 1;
-
-
-
-
-
-
- bool del : 1;
-
-
-
-
-
-
-
-
- bool setPermissions : 1;
- };
- FOUNDATION_EXTERN id RLMPermissionForRole(RLMArray *array, id role);
- typedef NS_ENUM(NSUInteger, RLMSyncAccessLevel) {
-
- RLMSyncAccessLevelNone = 0,
-
- RLMSyncAccessLevelRead = 1,
-
- RLMSyncAccessLevelWrite = 2,
-
-
- RLMSyncAccessLevelAdmin = 3,
- };
- typedef NSString * RLMSyncPermissionSortProperty NS_STRING_ENUM;
- extern RLMSyncPermissionSortProperty const RLMSyncPermissionSortPropertyPath;
- extern RLMSyncPermissionSortProperty const RLMSyncPermissionSortPropertyUserID;
- extern RLMSyncPermissionSortProperty const RLMSyncPermissionSortPropertyUpdated;
- @interface RLMSyncPermission : NSObject
- @property (nonatomic, readonly) NSString *path;
- @property (nonatomic, readonly) RLMSyncAccessLevel accessLevel;
- @property (nonatomic, readonly) BOOL mayRead;
- @property (nonatomic, readonly) BOOL mayWrite;
- @property (nonatomic, readonly) BOOL mayManage;
- - (instancetype)initWithRealmPath:(NSString *)path
- identity:(NSString *)identity
- accessLevel:(RLMSyncAccessLevel)accessLevel;
- - (instancetype)initWithRealmPath:(NSString *)path
- username:(NSString *)username
- accessLevel:(RLMSyncAccessLevel)accessLevel;
- @property (nullable, nonatomic, readonly) NSString *identity;
- @property (nullable, nonatomic, readonly) NSString *key;
- @property (nullable, nonatomic, readonly) NSString *value;
- @property (nonatomic, readonly) NSDate *updatedAt;
- - (instancetype)init __attribute__((unavailable("Use the designated initializer")));
- + (instancetype)new __attribute__((unavailable("Use the designated initializer")));
- @property (nullable, nonatomic, readonly) NSString *userId __attribute__((unavailable("Renamed to `identity`")));
- - (instancetype)initWithRealmPath:(NSString *)path
- userID:(NSString *)identity
- accessLevel:(RLMSyncAccessLevel)accessLevel
- __attribute__((unavailable("Renamed to `-initWithRealmPath:identity:accessLevel:`")));
- @end
- NS_ASSUME_NONNULL_END
|