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/