use vars qw(@ISA $VERSION @EXPORT_OK);
+use constant INVALID_CARD => 'Invalid cardnumber';
+use constant INVALID_PW => 'Invalid password';
+
BEGIN {
$VERSION = 3.07.00.049;
@ISA = qw(Exporter);
#
sub build_patron_status {
my ( $patron, $lang, $fields, $server ) = @_;
- my $overdrive_mode = $server->{account}->{'overdrive-mode'};
+
my $patron_pwd = $fields->{ (FID_PATRON_PWD) };
my $resp = (PATRON_STATUS_RESP);
- my $password_ok = 1;
my $password_rc;
- if ($patron) {
+ if ( $patron ) {
if ($patron_pwd) {
$password_rc = $patron->check_password($patron_pwd);
- $password_ok = 0 unless $password_rc;
}
- elsif ( $overdrive_mode
- and not exists $fields->{'AL'} # not block_request
- and not $patron_pwd ) # no password supplied
- {
- $password_ok = 0;
- }
- }
- if ( $patron and $password_ok ) {
$resp .= patron_status_string($patron);
$resp .= $lang . timestamp();
$resp .= add_field( FID_PERSONAL_NAME, $patron->name );
$resp .= maybe_add( FID_FEE_AMT, $patron->fee_amount );
}
- $resp .= maybe_add( FID_SCREEN_MSG, $patron->screen_msg, $server );
+ my $msg = $patron->screen_msg;
+ $msg .= ' -- '. INVALID_PW if $patron_pwd && !$password_rc;
+ $resp .= maybe_add( FID_SCREEN_MSG, $msg, $server );
+
$resp .= maybe_add( FID_SCREEN_MSG, $patron->{branchcode}, $server )
if ( $server->{account}->{send_patron_home_library_in_af} );
$resp .= maybe_add( FID_PRINT_LINE, $patron->print_line );
- } else {
- # Invalid patron id (and/or passwd for overdrive_mode)
+ } else {
+ # Invalid patron (cardnumber)
# Report that the user has no privs.
# no personal name, and is invalid (if we're using 2.00)
( $protocol_version >= 2 )
and $resp .= add_field( FID_VALID_PATRON, 'N' );
- $resp .=
- maybe_add( FID_SCREEN_MSG, 'Invalid patron or patron password' );
+ $resp .= maybe_add( FID_SCREEN_MSG, INVALID_CARD );
}
$resp .= add_field( FID_INST_ID, $fields->{ (FID_INST_ID) } );