From 7eedd59426a3356618527b898cd1c1ad7d2ffac7 Mon Sep 17 00:00:00 2001 From: Matthew Somerville Date: Thu, 14 Dec 2023 16:19:36 +0000 Subject: [PATCH] [SLWP] Separate out two admins. --- .../FixMyStreet/App/Controller/Waste/Echo.pm | 3 +- perllib/FixMyStreet/Cobrand/Kingston.pm | 8 +--- perllib/FixMyStreet/Cobrand/Sutton.pm | 8 +--- perllib/FixMyStreet/Roles/CobrandSLWP.pm | 45 ------------------- t/app/controller/waste_sutton_r.t | 18 -------- 5 files changed, 4 insertions(+), 78 deletions(-) diff --git a/perllib/FixMyStreet/App/Controller/Waste/Echo.pm b/perllib/FixMyStreet/App/Controller/Waste/Echo.pm index c84cf5dfa58..e721bd0ef99 100644 --- a/perllib/FixMyStreet/App/Controller/Waste/Echo.pm +++ b/perllib/FixMyStreet/App/Controller/Waste/Echo.pm @@ -72,7 +72,8 @@ sub receive_echo_event_notification : Path('/waste/echo') : Args(0) { my @bodies = ($body); if ($c->cobrand->moniker eq 'kingston') { - push @bodies, $c->cobrand->dashboard_extra_bodies; + my $sutton = FixMyStreet::Cobrand::Sutton->new->body; + push @bodies, $sutton; } foreach my $b (@bodies) { diff --git a/perllib/FixMyStreet/Cobrand/Kingston.pm b/perllib/FixMyStreet/Cobrand/Kingston.pm index f8903f46a4f..e2cd24344d4 100644 --- a/perllib/FixMyStreet/Cobrand/Kingston.pm +++ b/perllib/FixMyStreet/Cobrand/Kingston.pm @@ -10,13 +10,7 @@ sub council_area_id { return 2480; } sub council_area { return 'Kingston'; } sub council_name { return 'Kingston upon Thames Council'; } sub council_url { return 'kingston'; } - -sub admin_user_domain { ('kingston.gov.uk', 'sutton.gov.uk') } - -sub dashboard_extra_bodies { - my $sutton = FixMyStreet::Cobrand::Sutton->new->body; - return $sutton; -} +sub admin_user_domain { 'kingston.gov.uk' } =head2 waste_on_the_day_criteria diff --git a/perllib/FixMyStreet/Cobrand/Sutton.pm b/perllib/FixMyStreet/Cobrand/Sutton.pm index b4f40054287..69c44a9cf1d 100644 --- a/perllib/FixMyStreet/Cobrand/Sutton.pm +++ b/perllib/FixMyStreet/Cobrand/Sutton.pm @@ -9,13 +9,7 @@ sub council_area_id { return 2498; } sub council_area { return 'Sutton'; } sub council_name { return 'Sutton Council'; } sub council_url { return 'sutton'; } - -sub admin_user_domain { ('kingston.gov.uk', 'sutton.gov.uk') } - -sub dashboard_extra_bodies { - my $kingston = FixMyStreet::Cobrand::Kingston->new->body; - return $kingston; -} +sub admin_user_domain { 'sutton.gov.uk' } =head2 waste_on_the_day_criteria diff --git a/perllib/FixMyStreet/Roles/CobrandSLWP.pm b/perllib/FixMyStreet/Roles/CobrandSLWP.pm index 524655de557..1df9aea691f 100644 --- a/perllib/FixMyStreet/Roles/CobrandSLWP.pm +++ b/perllib/FixMyStreet/Roles/CobrandSLWP.pm @@ -52,18 +52,6 @@ around problems_restriction => sub { return $rs; }; -sub problems_on_dashboard { - my ($self, $rs) = @_; - - my $bodies = [ $self->body->id ]; - my $extra = $self->dashboard_extra_bodies; - push @$bodies, $extra->id if $extra; - $rs = FixMyStreet::DB->resultset('Problem')->to_body($bodies)->search({ - "me.cobrand_data" => 'waste', - }); - return $rs; -} - =item * When a garden subscription is sent to Echo, we include payment details =cut @@ -141,39 +129,6 @@ around updates_disallowed => sub { return $orig->($self, $problem); }; -=item * Allow both Kingston and Sutton users access to the cobrand admin - -=cut - -sub admin_allow_user { - my ( $self, $user ) = @_; - return 1 if $user->is_superuser; - return undef unless defined $user->from_body; - my $user_cobrand = $user->from_body->get_extra_metadata('cobrand', ''); - return $user_cobrand =~ /kingston|sutton/; -} - -# Let Kingston/Sutton staff users share permissions -sub permission_body_override { - my ($self, $body_ids) = @_; - - my $kingston = FixMyStreet::Cobrand::Kingston->new->body; - my $sutton = FixMyStreet::Cobrand::Sutton->new->body; - return unless $kingston && $sutton; - - my @out = map { - if ($kingston->id == $_) { - ($_, $sutton->id); - } elsif ($sutton->id == $_) { - ($_, $kingston->id); - } else { - $_; - } - } @$body_ids; - - return \@out; -} - sub state_groups_admin { [ [ New => [ 'confirmed' ] ], diff --git a/t/app/controller/waste_sutton_r.t b/t/app/controller/waste_sutton_r.t index 24660cbce48..47cec8ef1dd 100644 --- a/t/app/controller/waste_sutton_r.t +++ b/t/app/controller/waste_sutton_r.t @@ -287,24 +287,6 @@ FixMyStreet::override_config { }; }; -FixMyStreet::override_config { - ALLOWED_COBRANDS => ['kingston', 'sutton'], - MAPIT_URL => 'http://mapit.uk/', -}, sub { - subtest 'Kingston staff can see Sutton admin' => sub { - $mech->host('sutton.example.org'); - $mech->log_in_ok($staff->email); - $mech->get_ok('/admin/reports'); - $mech->follow_link_ok({ text => "Edit" }); - }; - subtest 'Kingston staff can see Sutton data on their dashboard' => sub { - $mech->host('kingston.example.org'); - $mech->get_ok('/dashboard?body=' . $body->id); - $mech->content_like(qr{Total\s*4}); - $mech->submit_form_ok; - }; -}; - sub shared_echo_mocks { my $e = Test::MockModule->new('Integrations::Echo'); $e->mock('GetPointAddress', sub {