mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-04-30 16:00:25 +00:00
Fixing up various minor regressions after restructuring PROPFIND.
This commit is contained in:
parent
ed055722e9
commit
f78655e952
@ -403,6 +403,7 @@ class CalDAVPrincipal
|
||||
* Return the privileges bits for the current session user to this resource
|
||||
*/
|
||||
function Privileges() {
|
||||
if ( !isset($this->privileges) )
|
||||
if ( is_string($this->privileges) ) $this->privileges = bindec( $this->privileges );
|
||||
return $this->privileges;
|
||||
}
|
||||
|
||||
@ -310,20 +310,23 @@ class CalDAVRequest
|
||||
}
|
||||
$this->collection->type = $this->collection_type;
|
||||
}
|
||||
else if ( preg_match( '#^((/[^/]+/)\.(in|out)/)[^/]*$#', $this->path, $matches ) ) {
|
||||
else if ( preg_match( '{^( ( / ([^/]+) / ) \.(in|out)/ ) [^/]*$}x', $this->path, $matches ) ) {
|
||||
// The request is for a scheduling inbox or outbox (or something inside one) and we should auto-create it
|
||||
$displayname = $session->fullname . ($matches[3] == 'in' ? ' Inbox' : ' Outbox');
|
||||
$this->collection_type = 'schedule-'. $matches[3]. 'box';
|
||||
$resourcetypes = sprintf('<DAV::collection/><urn:ietf:params:xml:ns:caldav:%s/>', $this->collection_type );
|
||||
$params = array( ':username' => $matches[3], ':parent_container' => $matches[2], ':dav_name' => $matches[1] );
|
||||
$params[':boxname'] = ($matches[4] == 'in' ? ' Inbox' : ' Outbox');
|
||||
$this->collection_type = 'schedule-'. $matches[4]. 'box';
|
||||
$params[':resourcetypes'] = sprintf('<DAV::collection/><urn:ietf:params:xml:ns:caldav:%s/>', $this->collection_type );
|
||||
$sql = <<<EOSQL
|
||||
INSERT INTO collection ( user_no, parent_container, dav_name, dav_displayname, is_calendar, created, modified, dav_etag, resourcetypes )
|
||||
VALUES( :user_no, :parent_path, :dav_name, :displayname, FALSE, current_timestamp, current_timestamp, '1', :resourcetypes )
|
||||
VALUES( (SELECT user_no FROM usr WHERE username = :username),
|
||||
:parent_container, :dav_name,
|
||||
(SELECT fullname FROM usr WHERE username = :username) || :boxname,
|
||||
FALSE, current_timestamp, current_timestamp, '1', :resourcetypes )
|
||||
EOSQL;
|
||||
$params = array( ':user_no' => $session->user_no, ':parent_path' => $matches[2], ':dav_name' => $matches[1],
|
||||
':displayname' => $displayname, ':resourcetypes' => $resourcetypes );
|
||||
|
||||
$qry = new AwlQuery( $sql, $params );
|
||||
$qry->Exec('caldav',__LINE__,__FILE__);
|
||||
dbg_error_log( "caldav", "Created new collection as '$displayname'." );
|
||||
dbg_error_log( 'caldav', 'Created new collection as "%s".', trim($params[':boxname']) );
|
||||
|
||||
$qry = new AwlQuery( "SELECT * FROM collection WHERE dav_name = :dav_name", array( ':dav_name' => $matches[1] ) );
|
||||
if ( $qry->Exec('caldav',__LINE__,__FILE__) && $qry->rows() == 1 && ($row = $qry->Fetch()) ) {
|
||||
|
||||
@ -324,19 +324,22 @@ class DAVResource
|
||||
else
|
||||
$this->collection->type = 'collection';
|
||||
}
|
||||
else if ( preg_match( '#^((/[^/]+/)\.(in|out)/)[^/]*$#', $this->dav_name, $matches ) ) {
|
||||
else if ( preg_match( '{^( ( / ([^/]+) / ) \.(in|out)/ ) [^/]*$}x', $this->dav_name, $matches ) ) {
|
||||
// The request is for a scheduling inbox or outbox (or something inside one) and we should auto-create it
|
||||
$params = array( ':user_no' => $session->user_no, ':parent_container' => $matches[2], ':dav_name' => $matches[1] );
|
||||
$params[':displayname'] = $session->fullname . ($matches[3] == 'in' ? ' Inbox' : ' Outbox');
|
||||
$this->collection_type = 'schedule-'. $matches[3]. 'box';
|
||||
$params = array( ':username' => $matches[3], ':parent_container' => $matches[2], ':dav_name' => $matches[1] );
|
||||
$params[':boxname'] = ($matches[4] == 'in' ? ' Inbox' : ' Outbox');
|
||||
$this->collection_type = 'schedule-'. $matches[4]. 'box';
|
||||
$params[':resourcetypes'] = sprintf('<DAV::collection/><urn:ietf:params:xml:ns:caldav:%s/>', $this->collection_type );
|
||||
$sql = <<<EOSQL
|
||||
INSERT INTO collection ( user_no, parent_container, dav_name, dav_displayname, is_calendar, created, modified, dav_etag, resourcetypes )
|
||||
VALUES( :user_no, :parent_container, :dav_name, :displayname, FALSE, current_timestamp, current_timestamp, '1', :resourcetypes )
|
||||
VALUES( (SELECT user_no FROM usr WHERE username = :username),
|
||||
:parent_container, :dav_name,
|
||||
(SELECT fullname FROM usr WHERE username = :username) || :boxname,
|
||||
FALSE, current_timestamp, current_timestamp, '1', :resourcetypes )
|
||||
EOSQL;
|
||||
$qry = new AwlQuery( $sql, $params );
|
||||
$qry->Exec('DAVResource');
|
||||
dbg_error_log( 'DAVResource', 'Created new collection as "$displayname".' );
|
||||
dbg_error_log( 'DAVResource', 'Created new collection as "%s".', trim($params[':boxname']) );
|
||||
|
||||
$params = array( ':raw_path' => $this->dav_name, ':session_principal' => $session->principal_id, ':scan_depth' => $c->permission_scan_depth );
|
||||
$qry = new AwlQuery( $base_sql . ' dav_name = :raw_path', $params );
|
||||
@ -449,7 +452,7 @@ EOSQL;
|
||||
*/
|
||||
function FetchPrincipal() {
|
||||
global $c, $session;
|
||||
$this->principal = new CalDAVPrincipal( array( "path" => $this->dav_name ) );
|
||||
$this->principal = new CalDAVPrincipal( array( "path" => $this->bound_from() ) );
|
||||
if ( $this->_is_principal && $this->principal->Exists() ) {
|
||||
// $this->contenttype = 'httpd/unix-directory';
|
||||
$this->exists = true;
|
||||
@ -540,6 +543,9 @@ EOQRY;
|
||||
if ( ! isset($this->collection) ) $this->FetchCollection();
|
||||
$this->privileges = 0;
|
||||
if ( !isset($this->collection->path_privs) ) {
|
||||
if ( !isset($this->collection->parent_container) ) {
|
||||
$this->collection->parent_container = preg_replace('{/[^/]+/$}', '', $this->collection->dav_name);
|
||||
}
|
||||
dbg_error_log( 'DAVResource', 'Checking privileges of "%s" - parent of "%s" (dav_name: %s)', $this->collection->parent_container, $this->collection->dav_name, $this->dav_name() );
|
||||
$parent = new DAVResource( $this->collection->parent_container );
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ $c->dbg = array();
|
||||
require_once("RRule-v2.php");
|
||||
require_once('AwlQuery.php');
|
||||
|
||||
header("Content-type: text/plain");
|
||||
@header("Content-type: text/plain");
|
||||
|
||||
echo <<<EOTXT
|
||||
Testing the RRule v2 Library
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
HTTP/1.1 207 Multi-Status
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
|
||||
ETag: "e00f3aa720ae2b6a80bdb7d95e5430e4"
|
||||
Content-Length: 813
|
||||
ETag: "c50498a15bb7fd50041aa0de8279f721"
|
||||
Content-Length: 1354
|
||||
Content-Type: text/xml; charset="utf-8"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
@ -12,7 +12,7 @@ Content-Type: text/xml; charset="utf-8"
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:getctag>"29a4f57ff8c8564c364d37fac0e18e34"</C:getctag>
|
||||
<displayname>User 1 Inbox</displayname>
|
||||
<displayname>User 2 Inbox</displayname>
|
||||
<resourcetype>
|
||||
<collection/>
|
||||
<C1:schedule-inbox/>
|
||||
@ -32,4 +32,26 @@ Content-Type: text/xml; charset="utf-8"
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user2/.in/15f40cce00b378332164188cf779f0d6.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<displayname>test meeting</displayname>
|
||||
<resourcetype/>
|
||||
<C1:calendar-free-busy-set>
|
||||
<href>/caldav.php/user2/home/</href>
|
||||
</C1:calendar-free-busy-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:getctag/>
|
||||
<C1:calendar-description/>
|
||||
<A:calendar-color/>
|
||||
<A:calendar-order/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
</multistatus>
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
HTTP/1.1 207 Multi-Status
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
|
||||
ETag: "c4f5aca6816fa9251ab0c662adadf0c9"
|
||||
Content-Length: 3316
|
||||
ETag: "15c404c52f510728b184026a924e53e7"
|
||||
Content-Length: 3930
|
||||
Content-Type: text/xml; charset="utf-8"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
@ -57,6 +57,31 @@ Content-Type: text/xml; charset="utf-8"
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user2/.in/</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:getctag>"29a4f57ff8c8564c364d37fac0e18e34"</C:getctag>
|
||||
<displayname>User 2 Inbox</displayname>
|
||||
<resourcetype>
|
||||
<collection/>
|
||||
<C1:schedule-inbox/>
|
||||
</resourcetype>
|
||||
<C1:calendar-free-busy-set>
|
||||
<href>/caldav.php/user2/home/</href>
|
||||
</C1:calendar-free-busy-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C1:calendar-description/>
|
||||
<A:calendar-color/>
|
||||
<A:calendar-order/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user2/.out/</href>
|
||||
<propstat>
|
||||
|
||||
@ -1,46 +1,17 @@
|
||||
HTTP/1.1 207 Multi-Status
|
||||
HTTP/1.1 403 Forbidden
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
|
||||
ETag: "1f0e016ecbd8566bc60b88a167178059"
|
||||
Content-Length: 1071
|
||||
Content-Length: 216
|
||||
Content-Type: text/xml; charset="utf-8"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<multistatus xmlns="DAV:">
|
||||
<response>
|
||||
<href>/caldav.php/resmgr1/</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<group-membership>
|
||||
<href>/caldav.php/resource1/calendar-proxy-write/</href>
|
||||
<href>/caldav.php/resource2/calendar-proxy-write/</href>
|
||||
</group-membership>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/resmgr1/calendar-proxy-read/</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<group-membership>
|
||||
<href>/caldav.php/resource1/calendar-proxy-write/</href>
|
||||
<href>/caldav.php/resource2/calendar-proxy-write/</href>
|
||||
</group-membership>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/resmgr1/calendar-proxy-write/</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<group-membership>
|
||||
<href>/caldav.php/resource1/calendar-proxy-write/</href>
|
||||
<href>/caldav.php/resource2/calendar-proxy-write/</href>
|
||||
</group-membership>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
</multistatus>
|
||||
<error xmlns="DAV:">
|
||||
<need-privileges>
|
||||
<resource>
|
||||
<href>/caldav.php/resmgr1/</href>
|
||||
<privilege>
|
||||
<read/>
|
||||
</privilege>
|
||||
</resource>
|
||||
</need-privileges>
|
||||
</error>
|
||||
|
||||
@ -1,46 +1,17 @@
|
||||
HTTP/1.1 207 Multi-Status
|
||||
HTTP/1.1 403 Forbidden
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
|
||||
ETag: "1f0e016ecbd8566bc60b88a167178059"
|
||||
Content-Length: 1071
|
||||
Content-Length: 216
|
||||
Content-Type: text/xml; charset="utf-8"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<multistatus xmlns="DAV:">
|
||||
<response>
|
||||
<href>/caldav.php/resmgr1/</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<group-membership>
|
||||
<href>/caldav.php/resource1/calendar-proxy-write/</href>
|
||||
<href>/caldav.php/resource2/calendar-proxy-write/</href>
|
||||
</group-membership>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/resmgr1/calendar-proxy-read/</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<group-membership>
|
||||
<href>/caldav.php/resource1/calendar-proxy-write/</href>
|
||||
<href>/caldav.php/resource2/calendar-proxy-write/</href>
|
||||
</group-membership>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/resmgr1/calendar-proxy-write/</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<group-membership>
|
||||
<href>/caldav.php/resource1/calendar-proxy-write/</href>
|
||||
<href>/caldav.php/resource2/calendar-proxy-write/</href>
|
||||
</group-membership>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
</response>
|
||||
</multistatus>
|
||||
<error xmlns="DAV:">
|
||||
<need-privileges>
|
||||
<resource>
|
||||
<href>/caldav.php/resmgr1/</href>
|
||||
<privilege>
|
||||
<read/>
|
||||
</privilege>
|
||||
</resource>
|
||||
</need-privileges>
|
||||
</error>
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
HTTP/1.1 207 Multi-Status
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
|
||||
ETag: "ea92b512c27205b703cb6f52043bb6d3"
|
||||
Content-Length: 4476
|
||||
ETag: "c54c9883b5a5959588d208034cd782e1"
|
||||
Content-Length: 14796
|
||||
Content-Type: text/xml; charset="utf-8"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
@ -51,6 +51,358 @@ Content-Type: text/xml; charset="utf-8"
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/3F4CF6227300FD062D9EF3CDFB30D32D-0.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/20061101T073004Z.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/4aaf8f37-f232-4c8e-a72e-e171d4c4fe54.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/9d050be7-8a02-4355-8ed3-02a9fc5f473f.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/1906b3ca-4890-468a-9b58-1de74bf2c716.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/fbd57454-d966-4a14-8341-abe1edb1ae66.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/2178279a-aec2-471f-832d-1f6df6203f2f.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/917b9e47-b748-4550-a566-657fbe672447.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/0575d895-a006-4ed8-9be6-0d1b6b6b1f96.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/b1679f77-673d-4f46-b3eb-2420e1bba301.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/e70576e9-c1e0-431e-a507-0386fd82f223.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/e6eb5bc9-f7f9-4a0a-94e8-8e90eefc7d08.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/71e2ae82-7870-11db-c6d6-f6927c144649.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/da81c0ee-7871-11db-c6d6-f6927c144649.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/AAA9318E-37D9-4319-8626-95ECD3D3B243.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/home/70D23799-4A68-4905-AB9F-4D47BA693CFD.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/created/</href>
|
||||
<propstat>
|
||||
@ -139,6 +491,50 @@ Content-Type: text/xml; charset="utf-8"
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/6C8A0D88-E1F9-4FC1-9EDD-DA258ABF2CFA.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/6E20BB7C-EFD9-4F0F-9BDC-5335E04D47E0/E6BC62F3-77C6-4FB7-BDD3-6882E2F1BE74.ics</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<C:calendar-home-set>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-home-set>
|
||||
<C:calendar-user-address-set>
|
||||
<href>mailto:user1@example.net</href>
|
||||
<href>/caldav.php/user1/</href>
|
||||
</C:calendar-user-address-set>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<A:dropbox-home-URL/>
|
||||
<A:notifications-URL/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 404 Not Found</status>
|
||||
</propstat>
|
||||
</response>
|
||||
<response>
|
||||
<href>/caldav.php/user1/calendar-proxy-read/</href>
|
||||
<propstat>
|
||||
|
||||
@ -365,6 +365,158 @@
|
||||
<href>/manager1/</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<acl>
|
||||
<ace>
|
||||
<principal>
|
||||
<property>
|
||||
<owner/>
|
||||
</property>
|
||||
</principal>
|
||||
<grant>
|
||||
<privilege>
|
||||
<all/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<read/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<unlock/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<read-acl/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<read-current-user-privilege-set/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write-acl/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:read-free-busy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write-properties/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write-content/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<bind/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<unbind/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver-invite/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver-reply/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-query-freebusy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-invite/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-reply/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-freebusy/>
|
||||
</privilege>
|
||||
</grant>
|
||||
</ace>
|
||||
<ace>
|
||||
<principal>
|
||||
<href>/assistant1/</href>
|
||||
</principal>
|
||||
<grant>
|
||||
<privilege>
|
||||
<read/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:read-free-busy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write-properties/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write-content/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<bind/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<unbind/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-query-freebusy/>
|
||||
</privilege>
|
||||
</grant>
|
||||
</ace>
|
||||
<ace>
|
||||
<principal>
|
||||
<href>/teamclient1/</href>
|
||||
</principal>
|
||||
<grant>
|
||||
<privilege>
|
||||
<read/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:read-free-busy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-query-freebusy/>
|
||||
</privilege>
|
||||
</grant>
|
||||
</ace>
|
||||
<ace>
|
||||
<principal>
|
||||
<authenticated/>
|
||||
</principal>
|
||||
<grant>
|
||||
<privilege>
|
||||
<C:read-free-busy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver-invite/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver-reply/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-query-freebusy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-invite/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-reply/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-freebusy/>
|
||||
</privilege>
|
||||
</grant>
|
||||
</ace>
|
||||
</acl>
|
||||
<creationdate>YYYY-MM-DDThh:mm:ss+ZZ:ZZ</creationdate>
|
||||
<displayname>Manager 1</displayname>
|
||||
<getcontentlanguage/>
|
||||
@ -387,12 +539,6 @@
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<acl/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 403 Forbidden</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<getcontentlength/>
|
||||
@ -409,6 +555,127 @@
|
||||
<href>/assistant1/</href>
|
||||
<propstat>
|
||||
<prop>
|
||||
<acl>
|
||||
<ace>
|
||||
<principal>
|
||||
<property>
|
||||
<owner/>
|
||||
</property>
|
||||
</principal>
|
||||
<grant>
|
||||
<privilege>
|
||||
<all/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<read/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<unlock/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<read-acl/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<read-current-user-privilege-set/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write-acl/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:read-free-busy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write-properties/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<write-content/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<bind/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<unbind/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver-invite/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver-reply/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-query-freebusy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-invite/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-reply/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-freebusy/>
|
||||
</privilege>
|
||||
</grant>
|
||||
</ace>
|
||||
<ace>
|
||||
<principal>
|
||||
<href>/teamclient1/</href>
|
||||
</principal>
|
||||
<grant>
|
||||
<privilege>
|
||||
<read/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:read-free-busy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-query-freebusy/>
|
||||
</privilege>
|
||||
</grant>
|
||||
</ace>
|
||||
<ace>
|
||||
<principal>
|
||||
<authenticated/>
|
||||
</principal>
|
||||
<grant>
|
||||
<privilege>
|
||||
<C:read-free-busy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver-invite/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-deliver-reply/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-query-freebusy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-invite/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-reply/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-send-freebusy/>
|
||||
</privilege>
|
||||
</grant>
|
||||
</ace>
|
||||
</acl>
|
||||
<creationdate>YYYY-MM-DDThh:mm:ss+ZZ:ZZ</creationdate>
|
||||
<displayname>Assistant 1</displayname>
|
||||
<getcontentlanguage/>
|
||||
@ -431,12 +698,6 @@
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<acl/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 403 Forbidden</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<getcontentlength/>
|
||||
|
||||
@ -1,12 +1,10 @@
|
||||
HTTP/1.1 200 OK
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
|
||||
Content-Length: 5540
|
||||
Content-Length: 5323
|
||||
Content-Type: text/html
|
||||
|
||||
#!/usr/bin/php
|
||||
|
||||
Warning: Cannot modify header information - headers already sent by (output started at /home/andrew/projects/davical/testing/test-RRULE-v2.php:2) in /home/andrew/projects/davical/testing/test-RRULE-v2.php on line 15
|
||||
Testing the RRule v2 Library
|
||||
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=
|
||||
20061103T073000 - RRULE:FREQ=DAILY;COUNT=7
|
||||
|
||||
@ -2,7 +2,7 @@ HTTP/1.1 207 Multi-Status
|
||||
Date: Dow, 01 Jan 2000 00:00:00 GMT
|
||||
DAV: 1, 2, access-control, calendar-access, calendar-schedule, extended-mkcol, calendar-proxy
|
||||
ETag: "some valid etag"
|
||||
Content-Length: 8564
|
||||
Content-Length: 8808
|
||||
Content-Type: text/xml; charset="utf-8"
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
@ -143,16 +143,21 @@ Content-Type: text/xml; charset="utf-8"
|
||||
<principal/>
|
||||
</resourcetype>
|
||||
<getcontenttype>httpd/unix-directory</getcontenttype>
|
||||
<current-user-privilege-set>
|
||||
<privilege>
|
||||
<read/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:read-free-busy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-query-freebusy/>
|
||||
</privilege>
|
||||
</current-user-privilege-set>
|
||||
<C2:getctag>some valid etag</C2:getctag>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<current-user-privilege-set/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 403 Forbidden</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<getetag/>
|
||||
@ -176,16 +181,21 @@ Content-Type: text/xml; charset="utf-8"
|
||||
<principal/>
|
||||
</resourcetype>
|
||||
<getcontenttype>httpd/unix-directory</getcontenttype>
|
||||
<current-user-privilege-set>
|
||||
<privilege>
|
||||
<read/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:read-free-busy/>
|
||||
</privilege>
|
||||
<privilege>
|
||||
<C:schedule-query-freebusy/>
|
||||
</privilege>
|
||||
</current-user-privilege-set>
|
||||
<C2:getctag>some valid etag</C2:getctag>
|
||||
</prop>
|
||||
<status>HTTP/1.1 200 OK</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<current-user-privilege-set/>
|
||||
</prop>
|
||||
<status>HTTP/1.1 403 Forbidden</status>
|
||||
</propstat>
|
||||
<propstat>
|
||||
<prop>
|
||||
<getetag/>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user