@@ -, +, @@ - with userid and password - with userid and wrong password - with cardnumber and password - with cardnumber and wrong password - Run t/db_dependent/ILSDI_Services.t - all tests should pass. --- C4/ILSDI/Services.pm | 24 ++++++++++-------------- koha-tmpl/opac-tmpl/prog/en/modules/ilsdi.tt | 2 +- t/db_dependent/ILSDI_Services.t | 2 -- 3 files changed, 11 insertions(+), 17 deletions(-) --- a/C4/ILSDI/Services.pm +++ a/C4/ILSDI/Services.pm @@ -313,28 +313,24 @@ the patron. Parameters: - username (Required) - user's login identifier + user's login identifier (userid or cardnumber) - password (Required) - user's password + user's password =cut sub AuthenticatePatron { my ($cgi) = @_; - - # Check if borrower exists, using a C4::Auth function... - unless( C4::Auth::checkpw( C4::Context->dbh, $cgi->param('username'), $cgi->param('password') ) ) { + my ($status, $cardnumber, $userid) = C4::Auth::checkpw( C4::Context->dbh, $cgi->param('username'), $cgi->param('password') ); + if ( $status ) { + # Get the borrower + my $borrower = GetMember( cardnumber => $cardnumber ); + my $patron->{'id'} = $borrower->{'borrowernumber'}; + return $patron; + } + else { return { code => 'PatronNotFound' }; } - - # Get the borrower - my $borrower = GetMember( userid => $cgi->param('username') ); - - # Build the hashref - my $patron->{'id'} = $borrower->{'borrowernumber'}; - - # ... and return his ID - return $patron; } =head2 GetPatronInfo --- a/koha-tmpl/opac-tmpl/prog/en/modules/ilsdi.tt +++ a/koha-tmpl/opac-tmpl/prog/en/modules/ilsdi.tt @@ -388,7 +388,7 @@

Parameters

username (Required)
-
user's login identifier
+
user's login identifier (userid or cardnumber)
password (Required)
user's password
--- a/t/db_dependent/ILSDI_Services.t +++ a/t/db_dependent/ILSDI_Services.t @@ -72,7 +72,6 @@ my $borrower = GetMember( borrowernumber => $borrowernumber ); is($reply->{'id'}, $borrowernumber, "userid is not case sensitive - Patron authenticated"); is($reply->{'code'}, undef, "Error code undef"); -TODO: { local: $TODO = "Can't use cardnumber for authentication with ILS-DI yet."; $query->param('username',$borrower->{'cardnumber'}); $reply = C4::ILSDI::Services::AuthenticatePatron($query); is($reply->{'id'}, $borrowernumber, "cardnumber and password - Patron authenticated"); @@ -88,7 +87,6 @@ TODO: { local: $TODO = "Can't use cardnumber for authentication with ILS-DI yet. $reply = C4::ILSDI::Services::AuthenticatePatron($query); is($reply->{'code'}, 'PatronNotFound', "non-existing cardnumer/userid - PatronNotFound"); is($reply->{'id'}, undef, "id undef"); - } } --