diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2017-03-14 17:59:00 +0000 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2017-03-14 17:59:00 +0000 |
commit | 86414debecd82fb66a03dc360944afc3ae4be3d6 (patch) | |
tree | 67e71f3080406d14d5f47b048be95489c360601d | |
parent | 74a7ed654369cb3ebd282c01d4a0de87a646c4ce (diff) | |
parent | 4ad523ad6a4950f91301e896b8f6a3d8e23afc06 (diff) |
Merge branch '1660-moderating-influence'
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Moderate.pm | 9 | ||||
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report.pm | 3 | ||||
-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 |
5 files changed, 29 insertions, 5 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/perllib/FixMyStreet/App/Controller/Report.pm b/perllib/FixMyStreet/App/Controller/Report.pm index 7cd9d32a0..27f4393bb 100644 --- a/perllib/FixMyStreet/App/Controller/Report.pm +++ b/perllib/FixMyStreet/App/Controller/Report.pm @@ -275,7 +275,8 @@ sub delete :Local :Args(1) { $p->user->update_reputation(-1); $c->model('DB::AdminLog')->create( { - admin_user => $c->user->email, + user => $c->user, + admin_user => $c->user->from_body->name, object_type => 'problem', action => 'state_change', object_id => $id, 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> |