From d99a082c2472bdf179d3c191e83801e8ce7cf659 Mon Sep 17 00:00:00 2001 From: Marten Gajda Date: Wed, 27 May 2015 14:32:32 +0200 Subject: [PATCH] Change the add-member parameter to add_member to match the name of the global variable name. Otherwise the global variable was always unset and the generic POST handler handled the request instead of the PUT handler for vcalendars. Make sure to return a Location header when adding a vcalendar using add-member POST. --- inc/DAVResource.php | 2 +- inc/caldav-PUT-vcalendar.php | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/inc/DAVResource.php b/inc/DAVResource.php index 4f0d5110..0a4d2a0f 100644 --- a/inc/DAVResource.php +++ b/inc/DAVResource.php @@ -1649,7 +1649,7 @@ EOQRY; case 'DAV::add-member': if ( ! $this->_is_collection ) return false; if ( isset($c->post_add_member) && $c->post_add_member === false ) return false; - $reply->DAVElement( $prop, 'add-member', $reply->href(ConstructURL(DeconstructURL($this->url())).'?add-member') ); + $reply->DAVElement( $prop, 'add-member', $reply->href(ConstructURL(DeconstructURL($this->url())).'?add_member') ); break; // Empty tag responses. diff --git a/inc/caldav-PUT-vcalendar.php b/inc/caldav-PUT-vcalendar.php index 65251ab7..efb8131d 100644 --- a/inc/caldav-PUT-vcalendar.php +++ b/inc/caldav-PUT-vcalendar.php @@ -86,4 +86,7 @@ write_resource( $dav_resource, $request->raw_post, $collection, $session->user_n if ( isset($etag) ) header(sprintf('ETag: "%s"', $etag) ); +// make sure to return a Location header when add-member was used +if ( $add_member ) header('Location: '.$c->protocol_server_port_script.$request->path); + $request->DoResponse( ($dav_resource->Exists() ? 204 : 201) );