diff --git a/ownCloudSDK/Connection/Capabilities/OCCapabilities.h b/ownCloudSDK/Connection/Capabilities/OCCapabilities.h index 67a92e0f..6baceef4 100644 --- a/ownCloudSDK/Connection/Capabilities/OCCapabilities.h +++ b/ownCloudSDK/Connection/Capabilities/OCCapabilities.h @@ -114,6 +114,11 @@ typedef NSNumber* OCCapabilityBool; @property(readonly,nullable,nonatomic) OCCapabilityBool publicSharingPasswordEnforcedForReadWrite; //!< Controls whether a password is required for read-write links @property(readonly,nullable,nonatomic) OCCapabilityBool publicSharingPasswordEnforcedForReadWriteDelete; //!< Controls whether a password is required for read-write-delete links @property(readonly,nullable,nonatomic) OCCapabilityBool publicSharingPasswordEnforcedForUploadOnly; //!< Controls whether a password is required for upload-only links +@property(readonly,nullable,nonatomic) OCCapabilityBool publicSharingPasswordBlockRemovalForReadOnly; //!< Controls whether the removal of a password is blocked for read-only links +@property(readonly,nullable,nonatomic) OCCapabilityBool publicSharingPasswordBlockRemovalForReadWrite; //!< Controls whether the removal of a password is blocked for read-write links +@property(readonly,nullable,nonatomic) OCCapabilityBool publicSharingPasswordBlockRemovalForReadWriteDelete; //!< Controls whether the removal of a password is blocked for read-write-delete links +@property(readonly,nullable,nonatomic) OCCapabilityBool publicSharingPasswordBlockRemovalForUploadOnly; //!< Controls whether the removal of a password is blocked for upload-only links + @property(readonly,nullable,nonatomic) OCCapabilityBool publicSharingExpireDateAddDefaultDate; //!< Controls whether a *default* expiration date should be set @property(readonly,nullable,nonatomic) OCCapabilityBool publicSharingExpireDateEnforceDateAndDaysDeterminesLastAllowedDate; //!< Controls whether .publicSharingDefaultExpireDateDays is enforced as maximum expiration date. Also, when set, an expiration date is REQUIRED. @property(readonly,nullable,nonatomic) NSNumber *publicSharingDefaultExpireDateDays; diff --git a/ownCloudSDK/Connection/Capabilities/OCCapabilities.m b/ownCloudSDK/Connection/Capabilities/OCCapabilities.m index 40dece2d..dfca6003 100644 --- a/ownCloudSDK/Connection/Capabilities/OCCapabilities.m +++ b/ownCloudSDK/Connection/Capabilities/OCCapabilities.m @@ -20,6 +20,8 @@ #import "OCMacros.h" #import "OCConnection.h" +#define WithDefault(val,def) (((val)==nil)?(def):(val)) + static NSInteger _defaultSharingSearchMinLength = 2; @interface OCCapabilities() @@ -101,6 +103,11 @@ @implementation OCCapabilities @dynamic publicSharingPasswordEnforcedForReadWrite; @dynamic publicSharingPasswordEnforcedForReadWriteDelete; @dynamic publicSharingPasswordEnforcedForUploadOnly; +@dynamic publicSharingPasswordBlockRemovalForReadOnly; +@dynamic publicSharingPasswordBlockRemovalForReadWrite; +@dynamic publicSharingPasswordBlockRemovalForReadWriteDelete; +@dynamic publicSharingPasswordBlockRemovalForUploadOnly; + @dynamic publicSharingExpireDateAddDefaultDate; @dynamic publicSharingExpireDateEnforceDateAndDaysDeterminesLastAllowedDate; @dynamic publicSharingDefaultExpireDateDays; @@ -657,6 +664,26 @@ - (OCCapabilityBool)publicSharingPasswordEnforcedForUploadOnly return (OCTypedCast(_capabilities[@"files_sharing"][@"public"][@"password"][@"enforced_for"][@"upload_only"], NSNumber)); } +- (OCCapabilityBool)publicSharingPasswordBlockRemovalForReadOnly +{ + return (WithDefault(OCTypedCast(_capabilities[@"files_sharing"][@"public"][@"password"][@"block_password_removal"][@"read_only"], NSNumber), @NO)); +} + +- (OCCapabilityBool)publicSharingPasswordBlockRemovalForReadWrite +{ + return (WithDefault(OCTypedCast(_capabilities[@"files_sharing"][@"public"][@"password"][@"block_password_removal"][@"read_write"], NSNumber), @NO)); +} + +- (OCCapabilityBool)publicSharingPasswordBlockRemovalForReadWriteDelete +{ + return (WithDefault(OCTypedCast(_capabilities[@"files_sharing"][@"public"][@"password"][@"block_password_removal"][@"read_write_delete"], NSNumber), @NO)); +} + +- (OCCapabilityBool)publicSharingPasswordBlockRemovalForUploadOnly +{ + return (WithDefault(OCTypedCast(_capabilities[@"files_sharing"][@"public"][@"password"][@"block_password_removal"][@"upload_only"], NSNumber), @NO)); +} + - (OCCapabilityBool)publicSharingExpireDateAddDefaultDate { return (OCTypedCast(_capabilities[@"files_sharing"][@"public"][@"expire_date"][@"enabled"], NSNumber));