Skip to content

Commit 7c9d2f6

Browse files
committed
Merge pull request owncloud#479 from owncloud/modify_share_link
Modify share link
2 parents b8086b8 + 4f254a9 commit 7c9d2f6

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
lines changed

Owncloud iOs Client/Tabs/FileTab/Share/ShareFileOrFolder.m

+20-5
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#import "UtilsUrls.h"
3030
#import "OCSharedDto.h"
3131

32+
#define server_version_with_new_shared_schema 8
3233
#define password_alert_view_tag 600
3334

3435

@@ -80,9 +81,24 @@ - (void) showShareActionSheetForFile:(FileDto *)file {
8081
* @param token -> NSString
8182
*
8283
*/
83-
- (void) presentShareActionSheetForToken:(NSString *)token withPassword:(BOOL) isPasswordSet{
84+
- (void) presentShareActionSheetForToken:(NSString *)sharedLink withPassword:(BOOL) isPasswordSet{
8485

85-
NSString *sharedLink = [NSString stringWithFormat:@"%@%@%@",APP_DELEGATE.activeUser.url,k_share_link_middle_part_url,token];
86+
NSString *url = nil;
87+
// From ownCloud server 8.2 the url field is always set for public shares
88+
if ([sharedLink hasPrefix:@"http://"] || [sharedLink hasPrefix:@"https://"])
89+
{
90+
url = sharedLink;
91+
}else{
92+
//Token
93+
NSString *firstNumber = [[AppDelegate sharedOCCommunication].getCurrentServerVersion substringToIndex:1];
94+
95+
if (firstNumber.integerValue >= server_version_with_new_shared_schema) {
96+
// From ownCloud server version 8 on, a different share link scheme is used.
97+
url = [NSString stringWithFormat:@"%@%@%@", APP_DELEGATE.activeUser.url, k_share_link_middle_part_url_after_version_8, sharedLink];
98+
}else{
99+
url = [NSString stringWithFormat:@"%@%@%@", APP_DELEGATE.activeUser.url, k_share_link_middle_part_url_before_version_8, sharedLink];
100+
}
101+
}
86102

87103
UIActivityItemProvider *activityProvider = [[UIActivityItemProvider alloc] initWithPlaceholderItem:[NSURL URLWithString:sharedLink]];
88104
NSArray *items = @[activityProvider, sharedLink];
@@ -192,7 +208,6 @@ - (void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSIntege
192208
* @param isFile -> BOOL. Distinct between is fileDto or shareDto
193209
*/
194210
- (void) clickOnShareLinkFromFileDto:(BOOL)isFileDto {
195-
DLog(@"Click on Share Link");
196211

197212
AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication]delegate];
198213

@@ -278,7 +293,7 @@ - (void) clickOnShareLinkFromFileDto:(BOOL)isFileDto {
278293
[[AppDelegate sharedOCCommunication] setUserAgent:[UtilsUrls getUserAgent]];
279294

280295
//Checking the Shared files and folders
281-
[[AppDelegate sharedOCCommunication] shareFileOrFolderByServer:app.activeUser.url andFileOrFolderPath:filePath onCommunication:[AppDelegate sharedOCCommunication] successRequest:^(NSHTTPURLResponse *response, NSString *token, NSString *redirectedServer) {
296+
[[AppDelegate sharedOCCommunication] shareFileOrFolderByServer:app.activeUser.url andFileOrFolderPath:filePath onCommunication:[AppDelegate sharedOCCommunication] successRequest:^(NSHTTPURLResponse *response, NSString *shareLink, NSString *redirectedServer) {
282297

283298
BOOL isSamlCredentialsError=NO;
284299

@@ -300,7 +315,7 @@ - (void) clickOnShareLinkFromFileDto:(BOOL)isFileDto {
300315
[self endLoading];
301316

302317
//Present
303-
[self presentShareActionSheetForToken:token withPassword:false];
318+
[self presentShareActionSheetForToken:shareLink withPassword:false];
304319
}
305320

306321
} failureRequest:^(NSHTTPURLResponse *response, NSError *error) {

Owncloud iOs Client/Utils/constants.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@
4040
#define k_percent_for_check_the_uploads 0.1
4141

4242
//Share link middle part url
43-
#define k_share_link_middle_part_url @"public.php?service=files&t="
43+
#define k_share_link_middle_part_url_before_version_8 @"public.php?service=files&t="
44+
#define k_share_link_middle_part_url_after_version_8 @"index.php/s/"
4445

4546
//Alert view tags
4647
#define k_alertview_for_login 1

0 commit comments

Comments
 (0)