From 582b7bc5e8d531eac46f1b146d7af8ef31a672d3 Mon Sep 17 00:00:00 2001
From: Alex Arnaud <alex.arnaud@biblibre.com>
Date: Fri, 6 Jul 2018 13:40:53 +0000
Subject: [PATCH] Bug 21046: Return the correct borrowernumber when there is
empty cardnumber(s)
Test plan:
- Use a patron with an empty cardnumber to authenticate with ILSDI
AuthenticatePatron
(cgi-bin/koha/ilsdi.pl?service=AuthenticatePatron&username=userid&password=pass),
- make sure you have other patron(s) with empty cardnumber and there
borrowernumber is
smaller than the one you authenticate with,
- you should get a wrong borrowernumber,
- apply this patch,
- test again, you should get the right one
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
---
C4/ILSDI/Services.pm | 2 +-
t/db_dependent/ILSDI_Services.t | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/C4/ILSDI/Services.pm b/C4/ILSDI/Services.pm
index 158ff8e0cb..5534d3ccbc 100644
--- a/C4/ILSDI/Services.pm
+++ b/C4/ILSDI/Services.pm
@@ -357,7 +357,7 @@ sub AuthenticatePatron {
my ($status, $cardnumber, $userid) = C4::Auth::checkpw( C4::Context->dbh, $username, $password );
if ( $status ) {
# Get the borrower
- my $patron = Koha::Patrons->find( { cardnumber => $cardnumber } );
+ my $patron = Koha::Patrons->find( { userid => $userid } );
return { id => $patron->borrowernumber };
}
else {
diff --git a/t/db_dependent/ILSDI_Services.t b/t/db_dependent/ILSDI_Services.t
index d918e43a73..1eca594137 100644
--- a/t/db_dependent/ILSDI_Services.t
+++ b/t/db_dependent/ILSDI_Services.t
@@ -42,9 +42,17 @@ subtest 'AuthenticatePatron test' => sub {
my $plain_password = 'tomasito';
+ $builder->build({
+ source => 'Borrower',
+ value => {
+ cardnumber => undef,
+ }
+ });
+
my $borrower = $builder->build({
source => 'Borrower',
value => {
+ cardnumber => undef,
password => Koha::AuthUtils::hash_password( $plain_password )
}
});
--
2.18.0