Skip to content

Commit d0d6136

Browse files
authored
Merge pull request owncloud#916 from owncloud/write-only_shared_folder
Support new public share option "show file listing"
2 parents e171781 + 3511c52 commit d0d6136

File tree

16 files changed

+223
-69
lines changed

16 files changed

+223
-69
lines changed

Owncloud iOs Client/DataBase/DTOs/UserDto.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ typedef enum {
4444
@property NSInteger hasCapabilitiesSupport;
4545
@property NSInteger hasFedSharesOptionShareSupport;
4646
@property NSInteger hasPublicShareLinkOptionNameSupport;
47+
@property NSInteger hasPublicShareLinkOptionUploadOnlySupport;
4748
@property BOOL imageInstantUpload;
4849
@property BOOL videoInstantUpload;
4950
@property BOOL backgroundInstantUpload;

Owncloud iOs Client/DataBase/Queries/InitializeDatabase.m

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
#define k_DB_version_18 18
4444
#define k_DB_version_19 19
4545
#define k_DB_version_20 20
46+
#define k_DB_version_21 21
4647

4748
@implementation InitializeDatabase
4849

@@ -56,7 +57,7 @@ @implementation InitializeDatabase
5657
+ (void) initDataBase {
5758

5859
//New version
59-
static int dbVersion = k_DB_version_20;
60+
static int dbVersion = k_DB_version_21;
6061

6162
//This method make a new database
6263
[ManageDB createDataBase];
@@ -111,6 +112,8 @@ + (void) initDataBase {
111112
[ManageDB updateDBVersion18To19];
112113
case k_DB_version_19:
113114
[ManageDB updateDBVersion19To20];
115+
case k_DB_version_20:
116+
[ManageDB updateDBVersion20To21];
114117
break; //Insert your migration above this final break.
115118
}
116119
}
@@ -143,7 +146,7 @@ + (void) removeURLEncodingFromAllFilesAndFoldersInTheFileSystem {
143146

144147
NSString *fullPath = [NSString stringWithFormat:@"%@%@",documentsDirectory, smallPath];
145148
NSString *originalName = [splitedUrl objectAtIndex:[splitedUrl count]-1];
146-
NSString *destinyName = [[splitedUrl objectAtIndex:[splitedUrl count]-1] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
149+
NSString *destinyName = [[splitedUrl objectAtIndex:[splitedUrl count]-1] stringByRemovingPercentEncoding];
147150

148151
NSURL *originalPath = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@%@",fullPath,originalName]];
149152
NSURL *destinyPath= [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@%@",fullPath,destinyName]];

Owncloud iOs Client/DataBase/Queries/ManageCapabilitiesDB.m

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,31 @@ +(void) insertCapabilities:(OCCapabilities *)capabilities ofUserId:(NSInteger)us
4040
[queue inTransaction:^(FMDatabase *db, BOOL *rollback) {
4141
BOOL correctQuery=NO;
4242

43-
correctQuery = [db executeUpdate:@"INSERT INTO capabilities(id_user, version_major, version_minor, version_micro, version_string, version_edition, core_poll_intervall, is_files_sharing_api_enabled, is_files_sharing_share_link_enabled, is_files_sharing_password_enforced_enabled, is_files_sharing_expire_date_by_default_enabled, is_files_sharing_expire_date_enforce_enabled, files_sharing_expire_date_days_number, is_files_sharing_allow_user_send_mail_notification_about_share_link_enabled, is_files_sharing_allow_public_uploads_enabled, is_files_sharing_allow_user_send_mail_notification_about_other_users_enabled, is_files_sharing_re_sharing_enabled, is_files_sharing_allow_user_send_shares_to_other_servers_enabled, is_files_sharing_allow_user_receive_shares_to_other_servers_enabled, is_file_big_file_chunking_enabled, is_file_undelete_enabled, is_file_versioning_enabled, is_files_sharing_allow_user_create_multiple_public_links_enabled) Values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", [NSNumber numberWithInteger:userId], [NSNumber numberWithInteger:capabilities.versionMajor], [NSNumber numberWithInteger:capabilities.versionMinor], [NSNumber numberWithInteger:capabilities.versionMicro], capabilities.versionString, capabilities.versionEdition, [NSNumber numberWithInteger:capabilities.corePollInterval], [NSNumber numberWithBool:capabilities.isFilesSharingAPIEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingShareLinkEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingPasswordEnforcedEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingExpireDateByDefaultEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingExpireDateEnforceEnabled], [NSNumber numberWithInteger:capabilities.filesSharingExpireDateDaysNumber], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendMailNotificationAboutShareLinkEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowPublicUploadsEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendMailNotificationAboutOtherUsersEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingReSharingEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendSharesToOtherServersEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserReceiveSharesToOtherServersEnabled], [NSNumber numberWithBool:capabilities.isFileBigFileChunkingEnabled], [NSNumber numberWithBool:capabilities.isFileUndeleteEnabled], [NSNumber numberWithBool:capabilities.isFileVersioningEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserCreateMultiplePublicLinksEnabled]];
43+
correctQuery = [db executeUpdate:@"INSERT INTO capabilities(id_user, version_major, version_minor, version_micro, version_string, version_edition, core_poll_intervall, is_files_sharing_api_enabled, is_files_sharing_share_link_enabled, is_files_sharing_password_enforced_enabled, is_files_sharing_expire_date_by_default_enabled, is_files_sharing_expire_date_enforce_enabled, files_sharing_expire_date_days_number, is_files_sharing_allow_user_send_mail_notification_about_share_link_enabled, is_files_sharing_allow_public_uploads_enabled, is_files_sharing_allow_user_send_mail_notification_about_other_users_enabled, is_files_sharing_re_sharing_enabled, is_files_sharing_allow_user_send_shares_to_other_servers_enabled, is_files_sharing_allow_user_receive_shares_to_other_servers_enabled, is_file_big_file_chunking_enabled, is_file_undelete_enabled, is_file_versioning_enabled, is_files_sharing_allow_user_create_multiple_public_links_enabled, 'is_files_sharing_supports_upload_only_enabled') Values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
44+
[NSNumber numberWithInteger:userId],
45+
[NSNumber numberWithInteger:capabilities.versionMajor],
46+
[NSNumber numberWithInteger:capabilities.versionMinor],
47+
[NSNumber numberWithInteger:capabilities.versionMicro],
48+
capabilities.versionString,
49+
capabilities.versionEdition,
50+
[NSNumber numberWithInteger:capabilities.corePollInterval],
51+
[NSNumber numberWithBool:capabilities.isFilesSharingAPIEnabled],
52+
[NSNumber numberWithBool:capabilities.isFilesSharingShareLinkEnabled],
53+
[NSNumber numberWithBool:capabilities.isFilesSharingPasswordEnforcedEnabled],
54+
[NSNumber numberWithBool:capabilities.isFilesSharingExpireDateByDefaultEnabled],
55+
[NSNumber numberWithBool:capabilities.isFilesSharingExpireDateEnforceEnabled],
56+
[NSNumber numberWithInteger:capabilities.filesSharingExpireDateDaysNumber],
57+
[NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendMailNotificationAboutShareLinkEnabled],
58+
[NSNumber numberWithBool:capabilities.isFilesSharingAllowPublicUploadsEnabled],
59+
[NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendMailNotificationAboutOtherUsersEnabled],
60+
[NSNumber numberWithBool:capabilities.isFilesSharingReSharingEnabled],
61+
[NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendSharesToOtherServersEnabled],
62+
[NSNumber numberWithBool:capabilities.isFilesSharingAllowUserReceiveSharesToOtherServersEnabled],
63+
[NSNumber numberWithBool:capabilities.isFileBigFileChunkingEnabled],
64+
[NSNumber numberWithBool:capabilities.isFileUndeleteEnabled],
65+
[NSNumber numberWithBool:capabilities.isFileVersioningEnabled],
66+
[NSNumber numberWithBool:capabilities.isFilesSharingAllowUserCreateMultiplePublicLinksEnabled],
67+
[NSNumber numberWithBool:capabilities.isFilesSharingSupportsUploadOnlyEnabled]];
4468

4569
if (!correctQuery) {
4670
DLog(@"Error in insert capabilities");
@@ -79,6 +103,7 @@ +(OCCapabilities *) getCapabilitiesOfUserId:(NSInteger) userId{
79103

80104
output.isFilesSharingAllowUserSendMailNotificationAboutShareLinkEnabled = [rs boolForColumn:@"is_files_sharing_allow_user_send_mail_notification_about_share_link_enabled"];
81105
output.isFilesSharingAllowPublicUploadsEnabled = [rs boolForColumn:@"is_files_sharing_allow_public_uploads_enabled"];
106+
output.isFilesSharingSupportsUploadOnlyEnabled = [rs boolForColumn:@"is_files_sharing_supports_upload_only_enabled"];
82107
output.isFilesSharingAllowUserSendMailNotificationAboutOtherUsersEnabled = [rs boolForColumn:@"is_files_sharing_allow_user_send_mail_notification_about_other_users_enabled"];
83108
output.isFilesSharingAllowUserCreateMultiplePublicLinksEnabled = [rs boolForColumn:@"is_files_sharing_allow_user_create_multiple_public_links_enabled"];
84109

@@ -106,7 +131,7 @@ +(void) updateCapabilitiesWith:(OCCapabilities *)capabilities ofUserId:(NSIntege
106131
[queue inTransaction:^(FMDatabase *db, BOOL *rollback) {
107132
BOOL correctQuery=NO;
108133

109-
correctQuery = [db executeUpdate:@"UPDATE capabilities SET version_major=?, version_minor=?, version_micro=?, version_string=?, version_edition=?, core_poll_intervall=?, is_files_sharing_api_enabled=?, is_files_sharing_share_link_enabled=?, is_files_sharing_password_enforced_enabled=?, is_files_sharing_expire_date_by_default_enabled=?, is_files_sharing_expire_date_enforce_enabled=?, files_sharing_expire_date_days_number=?, is_files_sharing_allow_user_send_mail_notification_about_share_link_enabled=?, is_files_sharing_allow_public_uploads_enabled=?, is_files_sharing_allow_user_send_mail_notification_about_other_users_enabled=?, is_files_sharing_re_sharing_enabled=?, is_files_sharing_allow_user_send_shares_to_other_servers_enabled=?, is_files_sharing_allow_user_receive_shares_to_other_servers_enabled=?, is_file_big_file_chunking_enabled=?, is_file_undelete_enabled=?, is_file_versioning_enabled=?, is_files_sharing_allow_user_create_multiple_public_links_enabled=? WHERE id_user = ?",[NSNumber numberWithInteger:capabilities.versionMajor], [NSNumber numberWithInteger:capabilities.versionMinor], [NSNumber numberWithInteger:capabilities.versionMicro], capabilities.versionString, capabilities.versionEdition, [NSNumber numberWithInteger:capabilities.corePollInterval], [NSNumber numberWithBool:capabilities.isFilesSharingAPIEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingShareLinkEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingPasswordEnforcedEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingExpireDateByDefaultEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingExpireDateEnforceEnabled], [NSNumber numberWithInteger:capabilities.filesSharingExpireDateDaysNumber], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendMailNotificationAboutShareLinkEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowPublicUploadsEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendMailNotificationAboutOtherUsersEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingReSharingEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendSharesToOtherServersEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserReceiveSharesToOtherServersEnabled], [NSNumber numberWithBool:capabilities.isFileBigFileChunkingEnabled], [NSNumber numberWithBool:capabilities.isFileUndeleteEnabled], [NSNumber numberWithBool:capabilities.isFileVersioningEnabled],[NSNumber numberWithBool:capabilities.isFilesSharingAllowUserCreateMultiplePublicLinksEnabled], [NSNumber numberWithInteger:userId]];
134+
correctQuery = [db executeUpdate:@"UPDATE capabilities SET version_major=?, version_minor=?, version_micro=?, version_string=?, version_edition=?, core_poll_intervall=?, is_files_sharing_api_enabled=?, is_files_sharing_share_link_enabled=?, is_files_sharing_password_enforced_enabled=?, is_files_sharing_expire_date_by_default_enabled=?, is_files_sharing_expire_date_enforce_enabled=?, files_sharing_expire_date_days_number=?, is_files_sharing_allow_user_send_mail_notification_about_share_link_enabled=?, is_files_sharing_allow_public_uploads_enabled=?, is_files_sharing_allow_user_send_mail_notification_about_other_users_enabled=?, is_files_sharing_re_sharing_enabled=?, is_files_sharing_allow_user_send_shares_to_other_servers_enabled=?, is_files_sharing_allow_user_receive_shares_to_other_servers_enabled=?, is_file_big_file_chunking_enabled=?, is_file_undelete_enabled=?, is_file_versioning_enabled=?, is_files_sharing_allow_user_create_multiple_public_links_enabled=?, is_files_sharing_supports_upload_only_enabled=? WHERE id_user = ?",[NSNumber numberWithInteger:capabilities.versionMajor], [NSNumber numberWithInteger:capabilities.versionMinor], [NSNumber numberWithInteger:capabilities.versionMicro], capabilities.versionString, capabilities.versionEdition, [NSNumber numberWithInteger:capabilities.corePollInterval], [NSNumber numberWithBool:capabilities.isFilesSharingAPIEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingShareLinkEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingPasswordEnforcedEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingExpireDateByDefaultEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingExpireDateEnforceEnabled], [NSNumber numberWithInteger:capabilities.filesSharingExpireDateDaysNumber], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendMailNotificationAboutShareLinkEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowPublicUploadsEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendMailNotificationAboutOtherUsersEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingReSharingEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserSendSharesToOtherServersEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingAllowUserReceiveSharesToOtherServersEnabled], [NSNumber numberWithBool:capabilities.isFileBigFileChunkingEnabled], [NSNumber numberWithBool:capabilities.isFileUndeleteEnabled], [NSNumber numberWithBool:capabilities.isFileVersioningEnabled],[NSNumber numberWithBool:capabilities.isFilesSharingAllowUserCreateMultiplePublicLinksEnabled], [NSNumber numberWithBool:capabilities.isFilesSharingSupportsUploadOnlyEnabled], [NSNumber numberWithInteger:userId]];
110135

111136
if (!correctQuery) {
112137
DLog(@"Error updating capabilities");

Owncloud iOs Client/DataBase/Queries/ManageDB.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,4 +259,12 @@
259259
*/
260260
+ (void) updateDBVersion19To20;
261261

262+
/**
263+
* Changes:
264+
*
265+
* Alter capabilities table, adds new column for capability multiple_public_links and supports_upload_only.
266+
*/
267+
+ (void) updateDBVersion20To21;
268+
269+
262270
@end

Owncloud iOs Client/DataBase/Queries/ManageDB.m

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ +(void) createDataBase {
107107
DLog(@"Error in createDataBase table cookies_storage");
108108
}
109109

110-
correctQuery = [db executeUpdate:@"CREATE TABLE IF NOT EXISTS 'capabilities' ('id' INTEGER PRIMARY KEY, 'id_user' INTEGER, 'version_major' INTEGER, 'version_minor' INTEGER, 'version_micro' INTEGER, 'version_string' VARCHAR, 'version_edition' VARCHAR, 'core_poll_intervall' INTEGER, 'is_files_sharing_api_enabled' BOOL, 'is_files_sharing_share_link_enabled' BOOL, 'is_files_sharing_password_enforced_enabled' BOOL, 'is_files_sharing_expire_date_by_default_enabled' BOOL, 'is_files_sharing_expire_date_enforce_enabled' BOOL, 'files_sharing_expire_date_days_number' INTEGER, 'is_files_sharing_allow_user_send_mail_notification_about_share_link_enabled' BOOL, 'is_files_sharing_allow_public_uploads_enabled' BOOL, 'is_files_sharing_allow_user_send_mail_notification_about_other_users_enabled' BOOL, 'is_files_sharing_re_sharing_enabled' BOOL, 'is_files_sharing_allow_user_send_shares_to_other_servers_enabled' BOOL, 'is_files_sharing_allow_user_receive_shares_to_other_servers_enabled' BOOL, 'is_file_big_file_chunking_enabled' BOOL, 'is_file_undelete_enabled' BOOL, 'is_file_versioning_enabled' BOOL, 'is_files_sharing_allow_user_create_multiple_public_links_enabled' BOOL)"];
110+
correctQuery = [db executeUpdate:@"CREATE TABLE IF NOT EXISTS 'capabilities' ('id' INTEGER PRIMARY KEY, 'id_user' INTEGER, 'version_major' INTEGER, 'version_minor' INTEGER, 'version_micro' INTEGER, 'version_string' VARCHAR, 'version_edition' VARCHAR, 'core_poll_intervall' INTEGER, 'is_files_sharing_api_enabled' BOOL, 'is_files_sharing_share_link_enabled' BOOL, 'is_files_sharing_password_enforced_enabled' BOOL, 'is_files_sharing_expire_date_by_default_enabled' BOOL, 'is_files_sharing_expire_date_enforce_enabled' BOOL, 'files_sharing_expire_date_days_number' INTEGER, 'is_files_sharing_allow_user_send_mail_notification_about_share_link_enabled' BOOL, 'is_files_sharing_allow_public_uploads_enabled' BOOL, 'is_files_sharing_allow_user_send_mail_notification_about_other_users_enabled' BOOL, 'is_files_sharing_re_sharing_enabled' BOOL, 'is_files_sharing_allow_user_send_shares_to_other_servers_enabled' BOOL, 'is_files_sharing_allow_user_receive_shares_to_other_servers_enabled' BOOL, 'is_file_big_file_chunking_enabled' BOOL, 'is_file_undelete_enabled' BOOL, 'is_file_versioning_enabled' BOOL, 'is_files_sharing_allow_user_create_multiple_public_links_enabled' BOOL, 'is_files_sharing_supports_upload_only_enabled' BOOL)"];
111111

112112
if (!correctQuery) {
113113
DLog(@"Error in createDataBase table capabilities");
@@ -1238,4 +1238,26 @@ + (void) updateDBVersion19To20 {
12381238

12391239
}
12401240

1241+
+ (void) updateDBVersion20To21 {
1242+
FMDatabaseQueue *queue = Managers.sharedDatabase;
1243+
1244+
[queue inTransaction:^(FMDatabase *db, BOOL *rollback) {
1245+
1246+
BOOL dbOperationSuccessful;
1247+
1248+
dbOperationSuccessful =[db executeUpdate:@"ALTER TABLE capabilities ADD is_files_sharing_allow_user_create_multiple_public_links_enabled BOOL NOT NULL DEFAULT 0"];
1249+
if (!dbOperationSuccessful) {
1250+
DLog(@"Error update version 20 to 21 table capabilities add column is_files_sharing_allow_user_create_multiple_public_links_enabled");
1251+
}
1252+
1253+
dbOperationSuccessful = [db executeUpdate:@"ALTER TABLE capabilities ADD is_files_sharing_supports_upload_only_enabled BOOL NOT NULL DEFAULT 0"];
1254+
if (!dbOperationSuccessful) {
1255+
DLog(@"Error update version 20 to 21 table capabilities is_files_sharing_supports_upload_only_enabled ");
1256+
}
1257+
1258+
}];
1259+
1260+
}
1261+
1262+
12411263
@end

0 commit comments

Comments
 (0)