From 5f71ccae8b5d1616ecf167bd1fa621eef67c72d4 Mon Sep 17 00:00:00 2001 From: Andrew Ruthven Date: Sun, 13 Feb 2022 17:28:23 +1300 Subject: [PATCH] Limit results for get_include_subcollections Closes #231. --- inc/caldav-GET.php | 3 + .../binding/1039-GET-mashup-not-root.result | 8 + .../binding/1039-GET-mashup-not-root.test | 9 + .../binding/1040-GET-mashup-other-user.result | 282 ++++++++++++++++++ .../binding/1040-GET-mashup-other-user.test | 9 + 5 files changed, 311 insertions(+) create mode 100644 testing/tests/binding/1039-GET-mashup-not-root.result create mode 100644 testing/tests/binding/1039-GET-mashup-not-root.test create mode 100644 testing/tests/binding/1040-GET-mashup-other-user.result create mode 100644 testing/tests/binding/1040-GET-mashup-other-user.test diff --git a/inc/caldav-GET.php b/inc/caldav-GET.php index a4ffe208..0a67a705 100644 --- a/inc/caldav-GET.php +++ b/inc/caldav-GET.php @@ -23,6 +23,9 @@ if ( ! $dav_resource->Exists() ) { $request->DoResponse( 404, translate("Resource Not Found.") ); } +if ( $request->path == '/' ) { + $request->DoResponse( 404, translate("Resource Not Found.") ); +} if ( $dav_resource->IsCollection() ) { $response = export_iCalendar($dav_resource); diff --git a/testing/tests/binding/1039-GET-mashup-not-root.result b/testing/tests/binding/1039-GET-mashup-not-root.result new file mode 100644 index 00000000..c1708f7f --- /dev/null +++ b/testing/tests/binding/1039-GET-mashup-not-root.result @@ -0,0 +1,8 @@ +HTTP/1.1 404 Not Found +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 +Content-Length: 19 +Content-Type: text/plain; charset="utf-8" + +Resource Not Found. \ No newline at end of file diff --git a/testing/tests/binding/1039-GET-mashup-not-root.test b/testing/tests/binding/1039-GET-mashup-not-root.test new file mode 100644 index 00000000..dea8481d --- /dev/null +++ b/testing/tests/binding/1039-GET-mashup-not-root.test @@ -0,0 +1,9 @@ +# +# Doing a GET on a collection of collections. +# + +TYPE=GET +URL=http://regression.host/caldav.php/ +HEAD + +AUTH=user4:user4 diff --git a/testing/tests/binding/1040-GET-mashup-other-user.result b/testing/tests/binding/1040-GET-mashup-other-user.result new file mode 100644 index 00000000..13b8149f --- /dev/null +++ b/testing/tests/binding/1040-GET-mashup-other-user.result @@ -0,0 +1,282 @@ +HTTP/1.1 200 OK +Date: Dow, 01 Jan 2000 00:00:00 GMT +Content-Location: /caldav.php/user3/ +DAV: 1, 2, 3, access-control, calendar-access, calendar-schedule +DAV: extended-mkcol, bind, addressbook, calendar-auto-schedule, calendar-proxy +Etag: "0ee82db4275e01bc6cca4de752ae50ad" +Content-Length: 6089 +Content-Type: text/calendar; charset="utf-8" + +BEGIN:VCALENDAR +PRODID:-//davical.org//NONSGML AWL Calendar//EN +VERSION:2.0 +CALSCALE:GREGORIAN +X-WR-CALNAME:User 3 +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070614T100000 +DTEND:20070614T110000 +UID:0a7b5c80-47c4-1374-5985-612e60ed0f46 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070612T110000 +DTEND:20070612T115000 +UID:0b49b506-70df-5d14-9d2d-59d83fdffc81 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20070628 +DTEND;VALUE=DATE:20070629 +UID:12c91dc4-2d3d-eab4-3523-0a74dfd2507d +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;TZID=Europe/Helsinki:20081024T084500 +RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=TU,FR +DTEND;TZID=Europe/Helsinki:20081024T113000 +UID:174F9C2A-1223-40C4-9E06-6E91F2EA9491 +CREATED:20081025T112648Z +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20110106T140000 +DTEND:20110106T150000 +UID:1f672ddc-2dc1-1e24-6dfa-40a67abcedb0 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20070616 +DTEND;VALUE=DATE:20070617 +UID:2f96b61d-10a8-f664-955e-7883db80710a +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20110111T140000 +DTEND:20110111T160000 +UID:33b44ce5-27f0-4c24-1102-9b57d76283e5 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20071111 +DTEND;VALUE=DATE:20071112 +UID:42ea5d10-ead1-3e84-0591-187c67c5b058 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20070614 +DTEND;VALUE=DATE:20070622 +UID:4503a501-7b37-0264-ddc5-ac5475a4fdc8 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20101231T112000 +DTEND:20101231T140500 +UID:45153201-8d55-8654-4559-b889613d6367 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070612T160000 +DTEND:20070612T172000 +UID:531d852f-9205-f584-7158-7d7a61be310f +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;TZID=Europe/Helsinki:20081025T133000 +RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=1TU,2WE,3TH,4FR;BYMONTH=3,6,9,10,12 +DTEND;TZID=Europe/Helsinki:20081025T143000 +UID:55F6EC95-2D21-4FB9-9AE1-A6E020B44AEB +CREATED:20081024T200734Z +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070613T180000 +DTEND:20070613T203000 +UID:57b61459-d960-3014-e563-a3a8b1433c1d +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070710T093000 +DTEND:20070710T120000 +UID:57e452c7-85fd-fa44-5d84-3291530c1580 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070820T090000 +DTEND:20070820T151500 +UID:5ac8d209-18c4-e9d4-d1bb-20cd103169ad +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20100322T160000 +DTEND:20100322T170000 +UID:70399cd7-50a4-4be4-a665-af593e19a7fd +CREATED:20100319T103247Z +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20070630 +DTEND;VALUE=DATE:20070701 +UID:739a1853-4ec5-2ad4-e5da-41db1d7c84d2 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20070629 +DTEND;VALUE=DATE:20070630 +UID:87cc5e9a-946b-36e4-21c3-e54565ac78b5 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20070824 +DTEND;VALUE=DATE:20070825 +UID:8a6ff684-dca3-7d24-75da-3629ff1b9d90 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070611T180000 +DTEND:20070611T181500 +UID:8b3c0856-32ac-7fe4-b1d4-eee9a6b8ee60 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070612T180000 +DTEND:20070612T183000 +UID:945f1994-1bc1-b784-4d73-0c5cce1944d5 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20070713 +DTEND;VALUE=DATE:20070714 +UID:a6c58ee1-a370-6964-3189-693628d30f2f +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070611T160000 +DTEND:20070611T180000 +UID:a7a59df6-44d4-4264-eda0-d35ea02ba5d4 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20101230T140000 +DTEND:20101230T143000 +UID:a80b017d-11fd-6d94-3dfe-16c7b59576aa +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070627T154500 +DTEND:20070627T234500 +UID:ae5f461a-45f0-8904-1163-6a2000c14685 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070613T100000 +DTEND:20070613T111000 +UID:bd27323d-beac-08b4-1d31-d2a1556c9a01 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070612T180000 +DTEND:20070612T200000 +UID:bda501e7-276e-a3f4-858f-7f16fd93d252 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20070915 +DTEND;VALUE=DATE:20070916 +UID:ca42a742-c8c9-9204-55eb-c34a55e99bf4 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070628T193000 +DTEND:20070628T223000 +UID:d4c3f578-4fd3-b964-2177-ba7376303e11 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070612T180000 +DTEND:20070612T210000 +UID:e1c23cee-adf6-3454-f5d8-8d19d9703ee1 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070611T131500 +DTEND:20070611T134500 +UID:f01c05ca-8227-c4a4-11a3-592c089104c2 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20070615 +DTEND;VALUE=DATE:20070618 +UID:f652c7db-239c-1db4-fded-98514ffdea66 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20070611T140000 +DTEND:20070611T180000 +UID:f75d2259-bacf-fc34-d5f9-a32cb8a93e56 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20101228T201500 +DTEND:20101228T211500 +UID:fab214ef-72ee-9494-75e3-7efc98d08ad7 +END:VEVENT +BEGIN:VEVENT +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART:20110108T140000 +DTEND:20110109T000000 +UID:fc106588-d847-86a4-813d-3637e7bcc21a +END:VEVENT +BEGIN:VTIMEZONE +TZID:Europe/Helsinki +BEGIN:DAYLIGHT +TZOFFSETFROM:+0200 +TZOFFSETTO:+0300 +DTSTART:19810329T030000 +RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU +TZNAME:EEST +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:+0300 +TZOFFSETTO:+0200 +DTSTART:19961027T040000 +RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU +TZNAME:EET +END:STANDARD +END:VTIMEZONE +END:VCALENDAR diff --git a/testing/tests/binding/1040-GET-mashup-other-user.test b/testing/tests/binding/1040-GET-mashup-other-user.test new file mode 100644 index 00000000..f7def191 --- /dev/null +++ b/testing/tests/binding/1040-GET-mashup-other-user.test @@ -0,0 +1,9 @@ +# +# Doing a GET on a collection of collections. +# + +TYPE=GET +URL=http://regression.host/caldav.php/user3 +HEAD + +AUTH=user1:user1