is( $auth_status, 'ok', 'User waiting for 2FA setup, pref was disabled, access OK' );
};
- C4::Context->_new_userenv; # For next tests
+ subtest 'loggedinlibrary permission tests' => sub {
+
+ plan tests => 3;
+ my $staff_user = $builder->build_object(
+ { class => 'Koha::Patrons', value => { flags => 536870916 } } );
+
+ my $branch = $builder->build_object({ class => 'Koha::Libraries' });
+ my $password = 'password';
+ t::lib::Mocks::mock_preference( 'RequireStrongPassword', 0 );
+ $staff_user->set_password( { password => $password } );
+ my $cgi = Test::MockObject->new();
+ $cgi->mock( 'cookie', sub { return; } );
+ $cgi->mock(
+ 'param',
+ sub {
+ my ( $self, $param ) = @_;
+ if ( $param eq 'userid' ) { return $staff_user->userid; }
+ elsif ( $param eq 'password' ) { return $password; }
+ elsif ( $param eq 'branch' ) { return $branch->branchcode; }
+ else { return; }
+ }
+ );
+
+ $cgi->mock( 'request_method', sub { return 'POST' } );
+ my ( $userid, $cookie, $sessionID, $flags ) = C4::Auth::checkauth( $cgi, 'authrequired' );
+ my $sesh = C4::Auth::get_session($sessionID);
+ is( $sesh->param('branch'), $branch->branchcode, "If user has permission, they should be able to choose a branch" );
+
+ $staff_user->flags(4)->store->discard_changes;
+ ( $userid, $cookie, $sessionID, $flags ) = C4::Auth::checkauth( $cgi, 'authrequired' );
+ $sesh = C4::Auth::get_session($sessionID);
+ is( $sesh->param('branch'), $staff_user->branchcode, "If user has not permission, they should not be able to choose a branch" );
+
+ $staff_user->flags(1)->store->discard_changes;
+ ( $userid, $cookie, $sessionID, $flags ) = C4::Auth::checkauth( $cgi, 'authrequired' );
+ $sesh = C4::Auth::get_session($sessionID);
+ is( $sesh->param('branch'), $branch->branchcode, "If user is superlibrarian, they should be able to choose a branch" );
+
+ };
+ C4::Context->_new_userenv; # For next tests
};
subtest 'track_login_daily tests' => sub {