diff --git a/inc/DAVPrincipal.php b/inc/DAVPrincipal.php
index 53f42ffc..e67ff977 100644
--- a/inc/DAVPrincipal.php
+++ b/inc/DAVPrincipal.php
@@ -205,6 +205,8 @@ class DAVPrincipal extends Principal
// whom are we a proxy for? who is a proxy for us?
// (as per Caldav Proxy section 5.1 Paragraph 7 and 5)
$sql = 'SELECT principal_id, username, pprivs(:request_principal::int8,principal_id,:scan_depth::int) FROM principal JOIN usr USING(user_no) WHERE usr.active=true AND principal_id IN (SELECT * from p_has_proxy_access_to(:request_principal,:scan_depth))';
+ if ( isset($c->strict_result_ordering) && $c->strict_result_ordering ) $sql .= " ORDER BY username";
+
$params = array( ':request_principal' => $this->principal_id, ':scan_depth' => $c->permission_scan_depth );
$qry = new AwlQuery($sql, $params);
if ( $qry->Exec('DAVPrincipal') && $qry->rows() > 0 ) {
@@ -224,6 +226,8 @@ class DAVPrincipal extends Principal
$sql = 'SELECT principal_id, username, pprivs(principal_id,:request_principal::int8,:scan_depth::int) FROM principal JOIN usr USING(user_no) WHERE usr.active=true AND principal_id IN (SELECT * from grants_proxy_access_from_p(:request_principal,:scan_depth))';
*/
$sql = 'SELECT principal_id, username, pprivs(principal_id,:request_principal::int8,:scan_depth::int) FROM principal JOIN usr USING(user_no) WHERE usr.active=true AND principal_id IN (SELECT to_principal FROM grants WHERE by_principal = :request_principal AND (privileges & 5::BIT(24)) != 0::BIT(24) AND by_collection IS NULL AND to_principal != :request_principal )';
+ if ( isset($c->strict_result_ordering) && $c->strict_result_ordering ) $sql .= " ORDER BY username";
+
$qry = new AwlQuery($sql, $params ); // reuse $params assigned for earlier query
if ( $qry->Exec('DAVPrincipal') && $qry->rows() > 0 ) {
while( $relationship = $qry->Fetch() ) {
diff --git a/testing/tests/regression-suite/0524-iCal-PROPFIND.result b/testing/tests/regression-suite/0524-iCal-PROPFIND.result
index b9aaea0d..b7650824 100644
--- a/testing/tests/regression-suite/0524-iCal-PROPFIND.result
+++ b/testing/tests/regression-suite/0524-iCal-PROPFIND.result
@@ -2,7 +2,7 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
-ETag: "e8e214ead69e04c9895f54796a53e3ab"
+ETag: "91baeafae14b1d363e1fe221e2eec6ba"
Content-Length: 5449
Content-Type: text/xml; charset="utf-8"
@@ -22,16 +22,16 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/assistant1/
/caldav.php/teamclient1/
/caldav.php/user1/
- /caldav.php/user1/calendar-proxy-read/
/caldav.php/assistant1/calendar-proxy-read/
/caldav.php/resource1/calendar-proxy-read/
/caldav.php/resource2/calendar-proxy-read/
+ /caldav.php/user1/calendar-proxy-read/
- /caldav.php/user1/
/caldav.php/assistant1/
/caldav.php/resource1/
/caldav.php/resource2/
+ /caldav.php/user1/
@@ -59,16 +59,16 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/assistant1/
/caldav.php/teamclient1/
/caldav.php/user1/
- /caldav.php/user1/calendar-proxy-read/
/caldav.php/assistant1/calendar-proxy-read/
/caldav.php/resource1/calendar-proxy-read/
/caldav.php/resource2/calendar-proxy-read/
+ /caldav.php/user1/calendar-proxy-read/
- /caldav.php/user1/
/caldav.php/assistant1/
/caldav.php/resource1/
/caldav.php/resource2/
+ /caldav.php/user1/
@@ -96,16 +96,16 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/assistant1/
/caldav.php/teamclient1/
/caldav.php/user1/
- /caldav.php/user1/calendar-proxy-read/
/caldav.php/assistant1/calendar-proxy-read/
/caldav.php/resource1/calendar-proxy-read/
/caldav.php/resource2/calendar-proxy-read/
+ /caldav.php/user1/calendar-proxy-read/
- /caldav.php/user1/
/caldav.php/assistant1/
/caldav.php/resource1/
/caldav.php/resource2/
+ /caldav.php/user1/
@@ -135,10 +135,10 @@ Content-Type: text/xml; charset="utf-8"
- /caldav.php/user1/
/caldav.php/assistant1/
/caldav.php/resource1/
/caldav.php/resource2/
+ /caldav.php/user1/
@@ -167,10 +167,10 @@ Content-Type: text/xml; charset="utf-8"
- /caldav.php/user1/
/caldav.php/assistant1/
/caldav.php/resource1/
/caldav.php/resource2/
+ /caldav.php/user1/
diff --git a/testing/tests/regression-suite/0525-iCal-PROPFIND.result b/testing/tests/regression-suite/0525-iCal-PROPFIND.result
index 822b2ba0..57f30ecd 100644
--- a/testing/tests/regression-suite/0525-iCal-PROPFIND.result
+++ b/testing/tests/regression-suite/0525-iCal-PROPFIND.result
@@ -2,7 +2,7 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
-ETag: "68b03f180d5f9046907a86251de16246"
+ETag: "4c111185c0195e4661052bf3bc3dee43"
Content-Length: 1055
Content-Type: text/xml; charset="utf-8"
@@ -24,10 +24,10 @@ Content-Type: text/xml; charset="utf-8"
- /caldav.php/user1/
/caldav.php/assistant1/
/caldav.php/resource1/
/caldav.php/resource2/
+ /caldav.php/user1/
diff --git a/testing/tests/regression-suite/0526-iCal-PROPFIND.result b/testing/tests/regression-suite/0526-iCal-PROPFIND.result
index 9699a872..6ed2c712 100644
--- a/testing/tests/regression-suite/0526-iCal-PROPFIND.result
+++ b/testing/tests/regression-suite/0526-iCal-PROPFIND.result
@@ -2,7 +2,7 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
-ETag: "fc0f5539296edf051d8a53d6a2bfe8cc"
+ETag: "be931b7b477402614832b2eaad980adc"
Content-Length: 764
Content-Type: text/xml; charset="utf-8"
@@ -19,8 +19,8 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/resource1/
/caldav.php/resource2/
/caldav.php/teamclient1/
- /caldav.php/manager1/calendar-proxy-read/
/caldav.php/assistant1/calendar-proxy-read/
+ /caldav.php/manager1/calendar-proxy-read/
/caldav.php/resource1/calendar-proxy-write/
/caldav.php/resource2/calendar-proxy-write/
diff --git a/testing/tests/regression-suite/0542-iCal4-REPORT.result b/testing/tests/regression-suite/0542-iCal4-REPORT.result
index a60c3938..69a5e344 100644
--- a/testing/tests/regression-suite/0542-iCal4-REPORT.result
+++ b/testing/tests/regression-suite/0542-iCal4-REPORT.result
@@ -2,7 +2,7 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
-ETag: "dc8a8dd8d55f610adb87fb0f9c1705cf"
+ETag: "a1828a06d1da7b4133011c0675c22285"
Content-Length: 2405
Content-Type: text/xml; charset="utf-8"
@@ -47,22 +47,6 @@ Content-Type: text/xml; charset="utf-8"
-
- /caldav.php/manager1/
-
-
- Manager 1
-
- /caldav.php/manager1/
-
-
- mailto:manager1@example.net
- /caldav.php/manager1/
-
-
- HTTP/1.1 200 OK
-
-
/caldav.php/assistant1/
@@ -79,6 +63,22 @@ Content-Type: text/xml; charset="utf-8"
HTTP/1.1 200 OK
+
+ /caldav.php/manager1/
+
+
+ Manager 1
+
+ /caldav.php/manager1/
+
+
+ mailto:manager1@example.net
+ /caldav.php/manager1/
+
+
+ HTTP/1.1 200 OK
+
+
HTTP/1.1 200 OK
diff --git a/testing/tests/regression-suite/0862-Spec-REPORT-principal.result b/testing/tests/regression-suite/0862-Spec-REPORT-principal.result
index a1ac0497..ed885250 100644
--- a/testing/tests/regression-suite/0862-Spec-REPORT-principal.result
+++ b/testing/tests/regression-suite/0862-Spec-REPORT-principal.result
@@ -2,7 +2,7 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
-ETag: "0f4b3456426720dea03e25482da4057d"
+ETag: "bd146c1ce543b0e0629c6df6abcccf96"
Content-Length: 1226
Content-Type: text/xml; charset="utf-8"
@@ -31,8 +31,8 @@ Content-Type: text/xml; charset="utf-8"
/caldav.php/resource1/
/caldav.php/resource2/
/caldav.php/teamclient1/
- /caldav.php/manager1/calendar-proxy-read/
/caldav.php/assistant1/calendar-proxy-read/
+ /caldav.php/manager1/calendar-proxy-read/
/caldav.php/resource1/calendar-proxy-write/
/caldav.php/resource2/calendar-proxy-write/
diff --git a/testing/tests/regression-suite/0930-REPORT-expand-property.result b/testing/tests/regression-suite/0930-REPORT-expand-property.result
index c0df26cf..24c760b0 100644
--- a/testing/tests/regression-suite/0930-REPORT-expand-property.result
+++ b/testing/tests/regression-suite/0930-REPORT-expand-property.result
@@ -2,7 +2,7 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
-ETag: "3fc7af8b9dcea1aa7ead9fa8cfeb7efd"
+ETag: "db22b03fc81436f25020e05135b0a710"
Content-Length: 3601
Content-Type: text/xml; charset="utf-8"
@@ -92,7 +92,7 @@ Content-Type: text/xml; charset="utf-8"
- /caldav.php/manager1/calendar-proxy-read/
+ /caldav.php/assistant1/calendar-proxy-read/
httpd/unix-directory
@@ -104,7 +104,7 @@ Content-Type: text/xml; charset="utf-8"
- /caldav.php/assistant1/calendar-proxy-read/
+ /caldav.php/manager1/calendar-proxy-read/
httpd/unix-directory
diff --git a/testing/tests/regression-suite/0931-REPORT-expand-property.result b/testing/tests/regression-suite/0931-REPORT-expand-property.result
index d06c9735..69b5c525 100644
--- a/testing/tests/regression-suite/0931-REPORT-expand-property.result
+++ b/testing/tests/regression-suite/0931-REPORT-expand-property.result
@@ -2,7 +2,7 @@ HTTP/1.1 207 Multi-Status
Date: Dow, 01 Jan 2000 00:00:00 GMT
DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule
DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy
-ETag: "0d81b1b934eb738f04a8d9aee626b2f4"
+ETag: "73b04fc52615d8c9cef678503931ad5f"
Content-Length: 3759
Content-Type: text/xml; charset="utf-8"
@@ -85,18 +85,6 @@ Content-Type: text/xml; charset="utf-8"
HTTP/1.1 200 OK
-
- /caldav.php/manager1/calendar-proxy-read/
-
-
- manager1 proxy read
-
- /caldav.php/manager1/
-
-
- HTTP/1.1 200 OK
-
-
/caldav.php/assistant1/calendar-proxy-read/
@@ -109,6 +97,18 @@ Content-Type: text/xml; charset="utf-8"
HTTP/1.1 200 OK
+
+ /caldav.php/manager1/calendar-proxy-read/
+
+
+ manager1 proxy read
+
+ /caldav.php/manager1/
+
+
+ HTTP/1.1 200 OK
+
+
/caldav.php/resource1/calendar-proxy-write/