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.
This commit is contained in:
Marten Gajda 2015-05-27 14:32:32 +02:00
parent 642524d391
commit d99a082c24
2 changed files with 4 additions and 1 deletions

View File

@ -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.

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