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
<h4>Parameters</h4>
<dl>
<dt><strong>username</strong> (Required)</dt>
- <dd>user's login identifier</dd>
+ <dd>user's login identifier (userid or cardnumber)</dd>
<dt><strong>password</strong> (Required)</dt>
<dd>user's password</dd>
</dl>
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");
$reply = C4::ILSDI::Services::AuthenticatePatron($query);
is($reply->{'code'}, 'PatronNotFound', "non-existing cardnumer/userid - PatronNotFound");
is($reply->{'id'}, undef, "id undef");
- }
}
+