From aa05688e4eb8c42789887d83ea538172d7348911 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Mon, 12 Sep 2011 10:52:16 +1200 Subject: [PATCH] Test for IsCollection() before IsBinding() when we are deleting. --- inc/caldav-DELETE.php | 30 ++++++++++--------- .../binding/1030-PUT-whole-subcalendar.result | 10 +++---- testing/tests/binding/1032-BIND-admin.result | 2 +- testing/tests/binding/1100-BIND.result | 2 +- .../tests/binding/1101-PROPFIND-normal.result | 2 +- .../tests/binding/1102-PROPFIND-bound.result | 2 +- testing/tests/carddav/Restore-Database.result | 2 +- .../tests/scheduling/Restore-Database.result | 2 +- 8 files changed, 27 insertions(+), 25 deletions(-) diff --git a/inc/caldav-DELETE.php b/inc/caldav-DELETE.php index a930ce5f..d6ecab87 100644 --- a/inc/caldav-DELETE.php +++ b/inc/caldav-DELETE.php @@ -48,21 +48,23 @@ if ( ! ( $dav_resource->resource_id() > 0 ) ) { $qry = new AwlQuery(); $qry->Begin(); -if ( $dav_resource->IsBinding() ) { - $params = array( ':dav_name' => $dav_resource->dav_name() ); - - if ( $qry->QDo("DELETE FROM dav_binding WHERE dav_name = :dav_name", $params ) - && $qry->Commit() ) { - @dbg_error_log( "DELETE", "DELETE: Binding: %d, ETag: %s, Path: %s", $session->user_no, $request->etag_if_match, $request->path); - $request->DoResponse( 204 ); +if ( $dav_resource->IsCollection() ) { + if ( $dav_resource->IsBinding() ) { + $params = array( ':dav_name' => $dav_resource->dav_name() ); + + if ( $qry->QDo("DELETE FROM dav_binding WHERE dav_name = :dav_name", $params ) + && $qry->Commit() ) { + @dbg_error_log( "DELETE", "DELETE: Binding: %d, ETag: %s, Path: %s", $session->user_no, $request->etag_if_match, $request->path); + $request->DoResponse( 204 ); + } } -} -else if ( $dav_resource->IsCollection() ) { - if ( delete_collection( $dav_resource->resource_id() ) && $qry->Commit() ) { - // Uncache anything to do with the collection - $cache = getCacheInstance(); - $cache->delete( 'collection-'.$dav_resource->dav_name(), null ); - $request->DoResponse( 204 ); + else { + if ( delete_collection( $dav_resource->resource_id() ) && $qry->Commit() ) { + // Uncache anything to do with the collection + $cache = getCacheInstance(); + $cache->delete( 'collection-'.$dav_resource->dav_name(), null ); + $request->DoResponse( 204 ); + } } } else { diff --git a/testing/tests/binding/1030-PUT-whole-subcalendar.result b/testing/tests/binding/1030-PUT-whole-subcalendar.result index 0a9f8622..312a74d6 100644 --- a/testing/tests/binding/1030-PUT-whole-subcalendar.result +++ b/testing/tests/binding/1030-PUT-whole-subcalendar.result @@ -8,6 +8,11 @@ Content-Length: 0 Content-Type: text/plain; charset="utf-8" + dav_etag: >0e091d7cf1ea4f613199a2a60090a7e1< + dav_name: >/user4/base/newcalendar/4887b3b0-0f91-012d-1259-002421a2359e.ics< + dtstart: >2010-07-17 10:00:00+12< + summary: >New Event< + dav_etag: >228540edb5690f6e8adb855aaa98ee98< dav_name: >/user4/base/newcalendar/73d1f980-ec28-012c-11f9-002421a2359e.ics< dtstart: >2010-01-06 11:00:00+13< @@ -33,11 +38,6 @@ Content-Type: text/plain; charset="utf-8" dtstart: >2010-05-03 13:00:00+12< summary: >Youngberg Hill Winemaker Dinner @ The Stephanie Inn< - dav_etag: >0e091d7cf1ea4f613199a2a60090a7e1< - dav_name: >/user4/base/newcalendar/4887b3b0-0f91-012d-1259-002421a2359e.ics< - dtstart: >2010-07-17 10:00:00+12< - summary: >New Event< - dav_etag: >a5972f272523b97d6cade1486a8b1c40< dav_name: >/user4/base/newcalendar/ed3beb90-0f8a-012d-1259-002421a2359e.ics< dtstart: >2010-07-18 05:00:00+12< diff --git a/testing/tests/binding/1032-BIND-admin.result b/testing/tests/binding/1032-BIND-admin.result index cec700af..9cc8db69 100644 --- a/testing/tests/binding/1032-BIND-admin.result +++ b/testing/tests/binding/1032-BIND-admin.result @@ -55,7 +55,7 @@ target_collection: >11< target_resource_i: >NULL< ticket_owner: >1003< - bind_id: >1628< + bind_id: >1625< bind_owner: >1< bound_source_id: >12< dav_displayname: >user3 home< diff --git a/testing/tests/binding/1100-BIND.result b/testing/tests/binding/1100-BIND.result index c91139c8..431e14bf 100644 --- a/testing/tests/binding/1100-BIND.result +++ b/testing/tests/binding/1100-BIND.result @@ -35,7 +35,7 @@ Content-Type: text/plain; charset="utf-8" length: >8< parent_container: >/user4/base/< - bind_id: >1629< + bind_id: >1626< bound_source_id: >1601< dav_displayname: >A normal collection< dav_name: >/user4/boundbase/< diff --git a/testing/tests/binding/1101-PROPFIND-normal.result b/testing/tests/binding/1101-PROPFIND-normal.result index f3609ca3..59b09b60 100644 --- a/testing/tests/binding/1101-PROPFIND-normal.result +++ b/testing/tests/binding/1101-PROPFIND-normal.result @@ -112,7 +112,7 @@ newcalendar - /caldav.php/.resources/1618 + /caldav.php/.resources/1615 diff --git a/testing/tests/binding/1102-PROPFIND-bound.result b/testing/tests/binding/1102-PROPFIND-bound.result index 8c2270a4..1dbe5ca9 100644 --- a/testing/tests/binding/1102-PROPFIND-bound.result +++ b/testing/tests/binding/1102-PROPFIND-bound.result @@ -125,7 +125,7 @@ newcalendar - /caldav.php/.resources/1618 + /caldav.php/.resources/1615 diff --git a/testing/tests/carddav/Restore-Database.result b/testing/tests/carddav/Restore-Database.result index 80453e61..a389687f 100644 --- a/testing/tests/carddav/Restore-Database.result +++ b/testing/tests/carddav/Restore-Database.result @@ -1,6 +1,6 @@ setval -------- - 1629 + 1626 (1 row) setval diff --git a/testing/tests/scheduling/Restore-Database.result b/testing/tests/scheduling/Restore-Database.result index e6084764..685b8c70 100644 --- a/testing/tests/scheduling/Restore-Database.result +++ b/testing/tests/scheduling/Restore-Database.result @@ -1,6 +1,6 @@ setval -------- - 1641 + 1638 (1 row) setval