From 58a75cafd6934f2a1b938aac12493bdb7bb53724 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Wed, 22 May 2024 13:08:43 +0000 Subject: [PATCH] Bug 36665: (follow-up) Allow choosing a branch with no IP when using AutoLocation Signed-off-by: Jonathan Druart Signed-off-by: Katrin Fischer --- C4/Auth.pm | 8 +++++++- t/db_dependent/Auth.t | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/C4/Auth.pm b/C4/Auth.pm index b313687b2f..f9484add7c 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -1235,11 +1235,17 @@ sub checkauth { } if ( + # If StaffLoginBranchBasedOnIP is enabled we will try to find a branch + # matching your ip, regardless of the choice you have passed in ( !C4::Context->preference('AutoLocation') && C4::Context->preference('StaffLoginBranchBasedOnIP') ) - || ( C4::Context->preference('AutoLocation') && $auth_state ne 'failed' ) + # When AutoLocation is enabled we will not choose a branch matching IP + # if your selected branch has no IP set + || ( C4::Context->preference('AutoLocation') + && $auth_state ne 'failed' + && $branches->{$branchcode}->{'branchip'} ) ) { foreach my $br ( uniq( $branchcode, keys %$branches ) ) { diff --git a/t/db_dependent/Auth.t b/t/db_dependent/Auth.t index 71d4a63c26..3ef06fc44d 100755 --- a/t/db_dependent/Auth.t +++ b/t/db_dependent/Auth.t @@ -1344,7 +1344,7 @@ subtest 'StaffLoginBranchBasedOnIP' => sub { subtest 'AutoLocation' => sub { - plan tests => 7; + plan tests => 8; $schema->storage->txn_begin; @@ -1396,6 +1396,13 @@ subtest 'AutoLocation' => sub { my $session = C4::Auth::get_session($sessionID); is( $session->param('branch'), $patron->branchcode ); + my $noip_library = $builder->build_object( { class => 'Koha::Libraries', value => { branchip => '' } } ); + $cgi->param( 'branch', $noip_library->branchcode ); + ( $userid, $cookie, $sessionID, $flags, $template ) = + C4::Auth::checkauth( $cgi, 0, { catalogue => 1 }, 'intranet' ); + $session = C4::Auth::get_session($sessionID); + is( $session->param('branch'), $noip_library->branchcode ); + $schema->storage->txn_rollback; }; -- 2.39.5