aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App/Controller/Photo.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Photo.pm')
-rw-r--r--perllib/FixMyStreet/App/Controller/Photo.pm20
1 files changed, 14 insertions, 6 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Photo.pm b/perllib/FixMyStreet/App/Controller/Photo.pm
index 774e5c4f7..7b2a04e4b 100644
--- a/perllib/FixMyStreet/App/Controller/Photo.pm
+++ b/perllib/FixMyStreet/App/Controller/Photo.pm
@@ -32,17 +32,25 @@ sub index :Path :Args(0) {
my $comment = $c->req->param('c');
return unless ( $id || $comment );
- my $photo;
-
+ my @photo;
if ( $comment ) {
- $photo = $c->model('DB::Comment')->find( {id => $comment, state => 'confirmed' } );
+ @photo = $c->model('DB::Comment')->search( {
+ id => $comment,
+ state => 'confirmed',
+ photo => { '!=', undef },
+ } );
} else {
- $photo = $c->model('DB::Problem')->find( {id => $id, state => 'confirmed' } );
+ @photo = $c->model('DB::Problem')->search( {
+ id => $id,
+ state => [ 'confirmed', 'fixed', 'partial' ],
+ photo => { '!=', undef },
+ } );
}
- return unless $photo;
+ $c->detach( '/page_error_404_not_found', [ 'No photo' ] )
+ unless @photo;
- $photo = $photo->photo;
+ my $photo = $photo[0]->photo;
if ( $c->req->param('tn' ) ) {
$photo = _resize( $photo, 'x100' );
} elsif ( $c->cobrand->default_photo_resize ) {