Merge branch 'fix-add-member' into 'master'

Fix add-member support for calendars

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.

See merge request !14
This commit is contained in:
Andrew Ruthven 2015-05-28 10:26:18 +00:00
commit 3ca7960746
2 changed files with 4 additions and 1 deletions

View File

@ -1650,7 +1650,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.

View File

@ -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) );