From fbae634bbb5e8caeeeb02fa296f3c68f955fe3d5 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Tue, 17 May 2016 11:28:07 +0100 Subject: Fix removal of cached update photos. It was possible that rotating an update photo did not remove its cached copy. --- perllib/FixMyStreet/App/Controller/Admin.pm | 4 ++-- perllib/FixMyStreet/App/Model/PhotoSet.pm | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 3e757f227..db9545830 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -784,7 +784,7 @@ sub report_edit : Path('report_edit') : Args(1) { } if ( $remove_photo_param || $new_state eq 'hidden' ) { - unlink glob FixMyStreet->path_to( 'web', 'photo', $problem->id . '.*' ); + $problem->get_photoset->delete_cached; } if ( $problem->is_visible() and $old_state eq 'unconfirmed' ) { @@ -1005,7 +1005,7 @@ sub update_edit : Path('update_edit') : Args(1) { } if ( $remove_photo_param || $new_state eq 'hidden' ) { - unlink glob FixMyStreet->path_to( 'web', 'photo', 'c', $update->id . '.*' ); + $update->get_photoset->delete_cached; } $update->name( $c->get_param('name') || '' ); diff --git a/perllib/FixMyStreet/App/Model/PhotoSet.pm b/perllib/FixMyStreet/App/Model/PhotoSet.pm index b44bf4b38..030dbd5be 100644 --- a/perllib/FixMyStreet/App/Model/PhotoSet.pm +++ b/perllib/FixMyStreet/App/Model/PhotoSet.pm @@ -255,9 +255,11 @@ sub delete_cached { my ($self) = @_; my $object = $self->object or return; + my @dirs = ('web', 'photo'); + push @dirs, 'c' if ref $object eq 'FixMyStreet::DB::Result::Comment'; + unlink glob FixMyStreet->path_to( - 'web', - 'photo', + @dirs, $object->id . '.*' ); } -- cgit v1.2.3