From 924ec5ee474b731caaceb384034f478277c6a21c Mon Sep 17 00:00:00 2001 From: Chris Mytton Date: Tue, 3 Sep 2013 15:44:00 +0100 Subject: [Zurich] Only super user can edit bodies --- perllib/FixMyStreet/App/Controller/Admin.pm | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index e2547019b..e0ba80af6 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -296,6 +296,7 @@ sub body : Path('body') : Args(1) { $c->stash->{body_id} = $body_id; + $c->forward( 'check_for_super_user' ); $c->forward( 'get_token' ); $c->forward( 'lookup_body' ); $c->forward( 'fetch_all_bodies' ); @@ -311,6 +312,13 @@ sub body : Path('body') : Args(1) { return 1; } +sub check_for_super_user : Private { + my ( $self, $c ) = @_; + if ( $c->cobrand->moniker eq 'zurich' && $c->stash->{admin_type} ne 'super' ) { + $c->detach('/page_error_404_not_found', []); + } +} + sub update_contacts : Private { my ( $self, $c ) = @_; -- cgit v1.2.3 From 18d916c30374bff64c0ce56c613210b93d301acc Mon Sep 17 00:00:00 2001 From: Chris Mytton Date: Wed, 4 Sep 2013 16:32:52 +0100 Subject: [Zurich] Ensure only superusers can add/edit bodies --- perllib/FixMyStreet/App/Controller/Admin.pm | 2 ++ 1 file changed, 2 insertions(+) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index e0ba80af6..133c83024 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -234,6 +234,7 @@ sub bodies : Path('bodies') : Args(0) { my $posted = $c->req->param('posted') || ''; if ( $posted eq 'body' ) { + $c->forward('check_for_super_user'); $c->forward('check_token'); my $params = $c->forward('body_params'); @@ -385,6 +386,7 @@ sub update_contacts : Private { $c->stash->{updated} = _('Values updated'); } elsif ( $posted eq 'body' ) { + $c->forward('check_for_super_user'); $c->forward('check_token'); my $params = $c->forward( 'body_params' ); -- cgit v1.2.3 From 12bf37ede6631a132f7b10e8e13017043786f422 Mon Sep 17 00:00:00 2001 From: Chris Mytton Date: Wed, 4 Sep 2013 17:29:37 +0100 Subject: [Zurich] Make the phone number field required --- perllib/FixMyStreet/App/Controller/Report/New.pm | 3 +++ 1 file changed, 3 insertions(+) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index 3d3ddce1e..2c1c7e15a 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -956,6 +956,9 @@ sub check_for_errors : Private { delete $field_errors{name}; my $report = $c->stash->{report}; $report->title( Utils::cleanup_text( substr($report->detail, 0, 25) ) ); + if ( ! $c->req->param('phone') ) { + $field_errors{phone} = "This field is required."; + } } # FIXME: need to check for required bromley fields here -- cgit v1.2.3 From d97283bf7b22fb00faa4c8b36a6b477192308fdb Mon Sep 17 00:00:00 2001 From: Edmund von der Burg Date: Thu, 5 Sep 2013 10:00:17 +0100 Subject: Use format_datetime for DBIx::Class searches to get rid of warnings when running test suite --- perllib/FixMyStreet/App/Controller/JSON.pm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/JSON.pm b/perllib/FixMyStreet/App/Controller/JSON.pm index 1a7c1915b..17507a84b 100644 --- a/perllib/FixMyStreet/App/Controller/JSON.pm +++ b/perllib/FixMyStreet/App/Controller/JSON.pm @@ -8,6 +8,7 @@ use JSON; use DateTime; use DateTime::Format::ISO8601; use List::MoreUtils 'uniq'; +use FixMyStreet::App; =head1 NAME @@ -80,11 +81,13 @@ sub problems : Local { $date_col = 'lastupdate'; } + my $dt_parser = FixMyStreet::App->model('DB')->schema->storage->datetime_parser; + my $one_day = DateTime::Duration->new( days => 1 ); my $query = { $date_col => { - '>=' => $start_dt, - '<=' => $end_dt + $one_day, + '>=' => $dt_parser->format_datetime($start_dt), + '<=' => $dt_parser->format_datetime($end_dt + $one_day), }, state => [ @state ], }; -- cgit v1.2.3 From 7ae561917867bc4b3cc711108c053537f306d4a5 Mon Sep 17 00:00:00 2001 From: Chris Mytton Date: Thu, 5 Sep 2013 13:38:43 +0100 Subject: [Zurich] Localise phone error message --- perllib/FixMyStreet/App/Controller/Report/New.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index 2c1c7e15a..6018dfa80 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -957,7 +957,7 @@ sub check_for_errors : Private { my $report = $c->stash->{report}; $report->title( Utils::cleanup_text( substr($report->detail, 0, 25) ) ); if ( ! $c->req->param('phone') ) { - $field_errors{phone} = "This field is required."; + $field_errors{phone} = _("This information is required"); } } -- cgit v1.2.3 From ea1ecdb43b879ce3355aa11167ae11f5f444bd65 Mon Sep 17 00:00:00 2001 From: Dave Whiteland Date: Sun, 4 Aug 2013 18:20:46 +0100 Subject: show "no bodies" hint on empty body db --- perllib/FixMyStreet/App/Controller/Admin.pm | 3 +++ 1 file changed, 3 insertions(+) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 133c83024..69238f90f 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -130,6 +130,9 @@ sub index : Path : Args(0) { $c->stash->{categories} = $c->cobrand->problems->categories_summary(); + if ($c->config->{SHOW_ADMIN_HINTS}) { + $c->stash->{total_bodies} = $c->model('DB::Body')->count(); + } return 1; } -- cgit v1.2.3 From db265d6814d3a3ab05ad3eea7ae2442433db05b7 Mon Sep 17 00:00:00 2001 From: Dave Whiteland Date: Wed, 14 Aug 2013 16:10:02 +0100 Subject: remove SHOW_ADMIN_HINTS config admin hints are displayed *like it or not* (actually, could hide for a given cobrand with CSS setting display:none) --- perllib/FixMyStreet/App/Controller/Admin.pm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 69238f90f..5393e98bb 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -130,9 +130,8 @@ sub index : Path : Args(0) { $c->stash->{categories} = $c->cobrand->problems->categories_summary(); - if ($c->config->{SHOW_ADMIN_HINTS}) { - $c->stash->{total_bodies} = $c->model('DB::Body')->count(); - } + $c->stash->{total_bodies} = $c->model('DB::Body')->count(); + return 1; } -- cgit v1.2.3 From 404b8328ec8022513df39723112a2084be341e61 Mon Sep 17 00:00:00 2001 From: Dave Whiteland Date: Thu, 15 Aug 2013 08:17:57 +0100 Subject: show warning on body with no live contacts --- perllib/FixMyStreet/App/Controller/Admin.pm | 1 + 1 file changed, 1 insertion(+) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 5393e98bb..5e98c5d04 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -432,6 +432,7 @@ sub display_contacts : Private { my $contacts = $c->stash->{body}->contacts->search(undef, { order_by => [ 'category' ] } ); $c->stash->{contacts} = $contacts; + $c->stash->{live_contacts} = $contacts->search({ deleted => 0 }); if ( $c->req->param('text') && $c->req->param('text') == 1 ) { $c->stash->{template} = 'admin/council_contacts.txt'; -- cgit v1.2.3 From 367fdaba0686150e841e879445ad2378f2f4d897 Mon Sep 17 00:00:00 2001 From: Dave Whiteland Date: Fri, 23 Aug 2013 08:32:49 +0100 Subject: clarify presentation on lagged users page now shows which flagged users are in abuse table, which seems important (separate issue #523 to make managing and indeed viewing abuse table) --- perllib/FixMyStreet/App/Controller/Admin.pm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 5e98c5d04..ba8f22a05 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -1027,8 +1027,20 @@ sub flagged : Path('flagged') : Args(0) { $c->stash->{problems} = [ $problems->all ]; my $users = $c->model('DB::User')->search( { flagged => 1 } ); + my @users = $users->all; + my %email2user = map { $_->email => $_ } @users; + $c->stash->{users} = [ @users ]; - $c->stash->{users} = $users; + my @abuser_emails = $c->model('DB::Abuse')->all(); + + foreach my $email (@abuser_emails) { + # Slight abuse of the boolean flagged value + if ($email2user{$email->email}) { + $email2user{$email->email}->flagged( 2 ); + } else { + push @{$c->stash->{users}}, { email => $email->email, flagged => 2 }; + } + } return 1; } -- cgit v1.2.3 From 34c5c665c8ff753ece7f2badc17da0fdbe257a28 Mon Sep 17 00:00:00 2001 From: Chris Mytton Date: Tue, 10 Sep 2013 18:24:10 +0100 Subject: [Zurich] Add deleted to admin body_params method --- perllib/FixMyStreet/App/Controller/Admin.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index ba8f22a05..4973b7c4e 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -413,7 +413,7 @@ sub update_contacts : Private { sub body_params : Private { my ( $self, $c ) = @_; - my @fields = qw/name endpoint jurisdiction api_key send_method send_comments suppress_alerts send_extended_statuses comment_user_id can_be_devolved parent/; + my @fields = qw/name endpoint jurisdiction api_key send_method send_comments suppress_alerts send_extended_statuses comment_user_id can_be_devolved parent deleted/; my %defaults = map { $_ => '' } @fields; %defaults = ( %defaults, send_comments => 0, @@ -422,6 +422,7 @@ sub body_params : Private { send_extended_statuses => 0, can_be_devolved => 0, parent => undef, + deleted => 0, ); my %params = map { $_ => $c->req->param($_) || $defaults{$_} } @fields; return \%params; -- cgit v1.2.3 From 18ade89f8f1303b184e55630421cd6f9f3e7d17b Mon Sep 17 00:00:00 2001 From: Chris Mytton Date: Thu, 12 Sep 2013 11:22:10 +0100 Subject: Add fullsize photo to Photo controller This is used in the Zurich admin to view a full size version of the image before it has been made public. --- perllib/FixMyStreet/App/Controller/Photo.pm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'perllib/FixMyStreet/App/Controller') diff --git a/perllib/FixMyStreet/App/Controller/Photo.pm b/perllib/FixMyStreet/App/Controller/Photo.pm index 8b00d1533..09afabecf 100644 --- a/perllib/FixMyStreet/App/Controller/Photo.pm +++ b/perllib/FixMyStreet/App/Controller/Photo.pm @@ -30,17 +30,19 @@ Display a photo =cut -sub during :LocalRegex('^([0-9a-f]{40})\.temp\.jpeg$') { +sub during :LocalRegex('^([0-9a-f]{40})\.(temp|fulltemp)\.jpeg$') { my ( $self, $c ) = @_; - my ( $hash ) = @{ $c->req->captures }; + my ( $hash, $size ) = @{ $c->req->captures }; my $file = file( $c->config->{UPLOAD_DIR}, "$hash.jpeg" ); my $photo = $file->slurp; - if ( $c->cobrand->default_photo_resize ) { - $photo = _shrink( $photo, $c->cobrand->default_photo_resize ); - } else { - $photo = _shrink( $photo, '250x250' ); + if ( $size eq 'temp' ) { + if ( $c->cobrand->default_photo_resize ) { + $photo = _shrink( $photo, $c->cobrand->default_photo_resize ); + } else { + $photo = _shrink( $photo, '250x250' ); + } } $c->forward( 'output', [ $photo ] ); -- cgit v1.2.3