diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2017-03-07 16:46:38 +0000 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2017-03-14 15:37:38 +0000 |
commit | 4ad523ad6a4950f91301e896b8f6a3d8e23afc06 (patch) | |
tree | 05d37bb624759e60d4a6bac75cf0502a99538c82 | |
parent | ecb6c0373a36b182fbc671602946805d64dcf679 (diff) |
Use name at time of moderation, include superusers
This works better if e.g. a user stops being associated with a body.
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Moderate.pm | 9 | ||||
-rw-r--r-- | t/app/controller/moderate.t | 18 | ||||
-rw-r--r-- | templates/web/base/report/_main.html | 2 | ||||
-rw-r--r-- | templates/web/base/report/update.html | 2 |
4 files changed, 27 insertions, 4 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Moderate.pm b/perllib/FixMyStreet/App/Controller/Moderate.pm index 94e6cd62a..74f2e6b31 100644 --- a/perllib/FixMyStreet/App/Controller/Moderate.pm +++ b/perllib/FixMyStreet/App/Controller/Moderate.pm @@ -83,6 +83,11 @@ sub moderate_report : Chained('report') : PathPart('') : Args(0) { $c->detach( 'report_moderate_audit', \@types ) } +sub moderating_user_name { + my $user = shift; + return $user->from_body ? $user->from_body->name : 'a FixMyStreet administrator'; +} + sub report_moderate_audit : Private { my ($self, $c, @types) = @_; @@ -95,7 +100,7 @@ sub report_moderate_audit : Private { $c->model('DB::AdminLog')->create({ action => 'moderation', user => $user, - admin_user => $user->name, + admin_user => moderating_user_name($user), object_id => $problem->id, object_type => 'problem', reason => (sprintf '%s (%s)', $reason, $types_csv), @@ -249,7 +254,7 @@ sub update_moderate_audit : Private { $c->model('DB::AdminLog')->create({ action => 'moderation', user => $user, - admin_user => $user->name, + admin_user => moderating_user_name($user), object_id => $comment->id, object_type => 'update', reason => (sprintf '%s (%s)', $reason, $types_csv), diff --git a/t/app/controller/moderate.t b/t/app/controller/moderate.t index 3a3c7a708..10287ab22 100644 --- a/t/app/controller/moderate.t +++ b/t/app/controller/moderate.t @@ -101,6 +101,7 @@ subtest 'Problem moderation' => sub { problem_detail => 'Good good improved', }}); $mech->base_like( qr{\Q$REPORT_URL\E} ); + $mech->content_like(qr/Moderated by Bromley Council/); $report->discard_changes; is $report->title, 'Good [...] good'; @@ -330,6 +331,23 @@ subtest 'Update 2' => sub { is $update2->text, 'update good good [...] good', }; +subtest 'Now stop being a staff user' => sub { + $user->update({ from_body => undef }); + $mech->get_ok($REPORT_URL); + $mech->content_contains('Moderated by Bromley Council'); +}; + +subtest 'And do it as a superuser' => sub { + $user->update({ is_superuser => 1 }); + $mech->get_ok($REPORT_URL); + $mech->submit_form_ok({ with_fields => { + %problem_prepopulated, + problem_title => 'Good good', + problem_detail => 'Good good improved', + }}); + $mech->content_contains('Moderated by a FixMyStreet administrator'); +}; + $update->delete; $update2->delete; $report->moderation_original_data->delete; diff --git a/templates/web/base/report/_main.html b/templates/web/base/report/_main.html index 9431ef2ce..12733a992 100644 --- a/templates/web/base/report/_main.html +++ b/templates/web/base/report/_main.html @@ -66,7 +66,7 @@ [% INCLUDE 'report/_main_sent_info.html' %] [% mlog = problem.latest_moderation_log_entry(); IF mlog %] - <p>Moderated by [% mlog.user.from_body.name %] at [% prettify_dt(mlog.whenedited) %]</p> + <p>Moderated by [% mlog.admin_user %] at [% prettify_dt(mlog.whenedited) %]</p> [% END %] [% INCLUDE 'report/_support.html' %] diff --git a/templates/web/base/report/update.html b/templates/web/base/report/update.html index d423a193d..752f20174 100644 --- a/templates/web/base/report/update.html +++ b/templates/web/base/report/update.html @@ -46,7 +46,7 @@ <p class="meta-2"> [% INCLUDE meta_line %] [% mlog = update.latest_moderation_log_entry(); IF mlog %] - <br /> Moderated by [% mlog.user.from_body.name %] at [% prettify_dt(mlog.whenedited) %] + <br /> Moderated by [% mlog.admin_user %] at [% prettify_dt(mlog.whenedited) %] [% END %] </p> </div> |