diff --git a/dba/davical.sql b/dba/davical.sql
index 56045d67..69709d8e 100644
--- a/dba/davical.sql
+++ b/dba/davical.sql
@@ -305,11 +305,10 @@ CREATE INDEX sync_processing_index ON sync_changes( collection_id, dav_id, sync_
CREATE TABLE access_ticket (
ticket_id TEXT PRIMARY KEY,
is_collection BOOLEAN,
- is_public BOOLEAN,
privileges BIT(24),
target_id INT8,
displayname TEXT,
- expires TIMESTAMP,
+ expires TIMESTAMP
);
SELECT new_db_revision(1,2,8, 'Août' );
diff --git a/dba/patches/1.2.8.sql b/dba/patches/1.2.8.sql
index 3aae7f76..e19187f6 100644
--- a/dba/patches/1.2.8.sql
+++ b/dba/patches/1.2.8.sql
@@ -13,7 +13,7 @@ CREATE TABLE access_ticket (
privileges BIT(24),
target_id INT8,
displayname TEXT,
- expires TIMESTAMP,
+ expires TIMESTAMP
);
SELECT new_db_revision(1,2,8, 'Août' );
diff --git a/inc/caldav-PROPFIND.php b/inc/caldav-PROPFIND.php
index bcd39f37..c7d2af73 100644
--- a/inc/caldav-PROPFIND.php
+++ b/inc/caldav-PROPFIND.php
@@ -29,10 +29,22 @@ $xmltree = BuildXMLTree( $request->xml_tags, $position);
if ( !is_object($xmltree) ) {
$request->DoResponse( 403, translate("REPORT body is not valid XML data!") );
}
-$properties = $xmltree->GetPath('/DAV::propfind/DAV::prop/*');
+$allprop = $xmltree->GetPath('/DAV::propfind/*');
$property_list = array();
-foreach( $properties AS $k => $v ) {
- $property_list[] = $v->GetTag();
+foreach( $allprop AS $k1 => $propwrap ) {
+ switch ( $propwrap->GetTag() ) {
+ case 'DAV::allprop':
+ $property_list[] = 'DAV::allprop';
+ break;
+ case 'DAV::propname':
+ $property_list[] = 'DAV::propname';
+ break;
+ default: // prop, include
+ $subprop = $propwrap->GetElements();
+ foreach( $subprop AS $k => $v ) {
+ $property_list[] = $v->GetTag();
+ }
+ }
}
diff --git a/testing/tests/regression-suite/828-Spec-PROPFIND-5.result b/testing/tests/regression-suite/828-Spec-PROPFIND-5.result
new file mode 100644
index 00000000..aec0fae7
--- /dev/null
+++ b/testing/tests/regression-suite/828-Spec-PROPFIND-5.result
@@ -0,0 +1,36 @@
+
+
+
+ /caldav.php/user1/home/
+
+
+ httpd/unix-directory
+
+
+
+
+ user1 home
+ Dow, 01 Jan 2000 00:00:00 GMT
+ YYYY-MM-DDThh:mm:ss+ZZ:ZZ
+
+
+
+
+
+
+
+
+
+
+
+
+ /caldav.php/user1/
+
+
+ /caldav.php/user1/
+
+
+ HTTP/1.1 200 OK
+
+
+
diff --git a/testing/tests/regression-suite/828-Spec-PROPFIND-5.test b/testing/tests/regression-suite/828-Spec-PROPFIND-5.test
new file mode 100644
index 00000000..6d6d2c70
--- /dev/null
+++ b/testing/tests/regression-suite/828-Spec-PROPFIND-5.test
@@ -0,0 +1,19 @@
+#
+# Testing for Spec compliance. PROPFIND on a calendar collection.
+#
+TYPE=PROPFIND
+URL=http://mycaldav/caldav.php/user1/home/
+HEADER=User-Agent: RFC2518 Spec Tests
+HEADER=Depth: 0
+HEADER=Content-Type: application/xml
+
+REPLACE=#2\d{3}-\d\d-\d\dT\d\d:\d\d:\d\d[+-]\d\d:\d\d#YYYY-MM-DDThh:mm:ss+ZZ:ZZ#
+
+BEGINDATA
+
+
+
+
+ENDDATA
+
+# REPLACE=/"[0-9a-f]{32}"<.get.tag>/"deadbeefcafef00ddeadbeefcafefeed"<.get?tag>/