diff options
author | Struan Donald <struan@exo.org.uk> | 2018-04-17 16:38:36 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2018-06-19 10:21:44 +0100 |
commit | 85ae59fdd1d8690efc569a193853072eb2519c89 (patch) | |
tree | 589f4084ac35a7d05cb676547ae275a75c998cce /t/app/controller/root.t | |
parent | 75a07fbfc7d2cd407189204a8e9a90d7fc3675cc (diff) |
cobrand hook to deny access to pages
Add a check in the root controller `auto` to a cobrand hook that denies
access if it returns true. This goes here so that cobrands and users are
set up, which is not the case for `check_login_required`. Used to do
things like deny site access unless the user is a superuser.
Diffstat (limited to 't/app/controller/root.t')
-rw-r--r-- | t/app/controller/root.t | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/t/app/controller/root.t b/t/app/controller/root.t index ddf659b77..b5f8ba031 100644 --- a/t/app/controller/root.t +++ b/t/app/controller/root.t @@ -1,4 +1,5 @@ use FixMyStreet::TestMech; +use Test::MockModule; ok( my $mech = FixMyStreet::TestMech->new, 'Created mech object' ); @@ -73,4 +74,18 @@ FixMyStreet::override_config { }; }; +subtest "check_login_disallowed cobrand hook" => sub { + warn '#' x 50 . "\n"; + my $cobrand = Test::MockModule->new('FixMyStreet::Cobrand::Default'); + $cobrand->mock('check_login_disallowed', sub { + my $self = shift; + return 0 if $self->{c}->req->path eq 'auth'; + return 1; + } + ); + + $mech->get_ok('/'); + is $mech->uri->path_query, '/auth?r=', 'redirects to auth page'; +}; + done_testing(); |