From 539a6c3bebff58ed099c68f480280516372eed26 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 30 Jan 2017 21:56:33 -0500 Subject: [PATCH] Fix public URL with special characters Fixes #3993 --- NEWS | 2 ++ SoObjects/SOGo/SOGoGCSFolder.m | 13 ++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 4bd981906..c4ed42e64 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,8 @@ Enhancements Bug fixes - [web] saving the preferences was not possible when Mail module is disabled + - [web] ignore mouse events in scrollbars of Month view (#3990) + - [web] fixed public URL with special characters (#3993) 3.2.6a (2017-01-26) ------------------- diff --git a/SoObjects/SOGo/SOGoGCSFolder.m b/SoObjects/SOGo/SOGoGCSFolder.m index 0e7b83386..67520293a 100644 --- a/SoObjects/SOGo/SOGoGCSFolder.m +++ b/SoObjects/SOGo/SOGoGCSFolder.m @@ -471,10 +471,17 @@ static NSArray *childRecordFields = nil; { NSMutableArray *newPath; NSURL *davURL; + unsigned int max, count; davURL = [self realDavURL]; newPath = [NSMutableArray arrayWithArray: [[davURL path] componentsSeparatedByString: @"/"]]; [newPath insertObject: @"public" atIndex: 3]; + + max = [newPath count]; + for (count = 0; count < max; count++) + [newPath replaceObjectAtIndex: count + withObject: [[newPath objectAtIndex: count] stringByEscapingURL]]; + davURL = [NSURL URLWithString: [newPath componentsJoinedByString: @"/"] relativeToURL: davURL]; @@ -495,9 +502,9 @@ static NSArray *childRecordFields = nil; publicParticle = @""; path = [NSString stringWithFormat: @"/%@/dav%@/%@/%@/%@/", appName, publicParticle, - [self ownerInContext: nil], - [container nameInContainer], - [self realNameInContainer]]; + [[self ownerInContext: nil] stringByEscapingURL], + [[container nameInContainer] stringByEscapingURL], + [[self realNameInContainer] stringByEscapingURL]]; currentDavURL = [self davURL]; realDavURL = [NSURL URLWithString: path relativeToURL: currentDavURL]; }