From e811e5b290301e9cd6fb242054c126c3fe8e95f4 Mon Sep 17 00:00:00 2001 From: helge Date: Mon, 21 Nov 2005 14:58:34 +0000 Subject: [PATCH] fixed some WebFolders issue git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1188 e4a50df8-12e2-0310-a44c-efbce7f8a7e3 --- sope-appserver/NGObjWeb/ChangeLog | 3 +++ sope-appserver/NGObjWeb/Version | 2 +- .../NGObjWeb/WebDAV/SoObjectWebDAVDispatcher.m | 16 ++++++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/sope-appserver/NGObjWeb/ChangeLog b/sope-appserver/NGObjWeb/ChangeLog index c8a62fa4..1274dd54 100644 --- a/sope-appserver/NGObjWeb/ChangeLog +++ b/sope-appserver/NGObjWeb/ChangeLog @@ -1,5 +1,8 @@ 2005-11-21 Helge Hess + * WebDAV/SoObjectWebDAVDispatcher.m: set 'public' header in case the + WebDAV client is WebFolders (v4.5.216) + * WEClientCapabilities.m: added WebFolders WinXP SP2 as a known user agent (v4.5.215) diff --git a/sope-appserver/NGObjWeb/Version b/sope-appserver/NGObjWeb/Version index 2d34905e..9498814d 100644 --- a/sope-appserver/NGObjWeb/Version +++ b/sope-appserver/NGObjWeb/Version @@ -1,6 +1,6 @@ # version file -SUBMINOR_VERSION:=215 +SUBMINOR_VERSION:=216 # v4.5.214 requires libNGExtensions v4.5.179 # v4.5.122 requires libNGExtensions v4.5.153 diff --git a/sope-appserver/NGObjWeb/WebDAV/SoObjectWebDAVDispatcher.m b/sope-appserver/NGObjWeb/WebDAV/SoObjectWebDAVDispatcher.m index 0b18d875..82f813d3 100644 --- a/sope-appserver/NGObjWeb/WebDAV/SoObjectWebDAVDispatcher.m +++ b/sope-appserver/NGObjWeb/WebDAV/SoObjectWebDAVDispatcher.m @@ -144,11 +144,11 @@ static NSTimeZone *gmt = nil; if (![methodObject isNotNull]) return nil; if ([methodObject isKindOfClass:[NSException class]]) { - if ([(NSException *)methodObject httpStatus] == 404) { + if ([(NSException *)methodObject httpStatus] == 404 /* Not Found */) { /* not found */ return nil; } - return methodObject; + return methodObject; /* the exception */ } if ((e = [self->object validateName:_method inContext:_ctx]) != nil) return e; @@ -259,6 +259,7 @@ static NSTimeZone *gmt = nil; NSArray *tmp; id result; + /* this checks whether the object provides a specific OPTIONS method */ if ((result = [self _callObjectMethod:@"OPTIONS" inContext:_ctx]) != nil) return result; @@ -268,6 +269,17 @@ static NSTimeZone *gmt = nil; if ((tmp = [self->object davAllowedMethodsInContext:_ctx]) != nil) [response setHeader:[tmp componentsJoinedByString:@", "] forKey:@"allow"]; + if ([[[_ctx request] clientCapabilities] isWebFolder]) { + /* + As described over here: + http://teyc.editthispage.com/2005/06/02 + + This page also says that: "MS-Auth-Via header is not required to work + with Web Folders". + */ + [response setHeader:[tmp componentsJoinedByString:@", "] forKey:@"public"]; + } + if ((tmp = [self->object davComplianceClassesInContext:_ctx]) != nil) [response setHeader:[tmp componentsJoinedByString:@", "] forKey:@"dav"]; -- 2.39.5