View | Details | Raw Unified | Return to bug 13871
Collapse All | Expand All

(-)a/C4/SIP/Sip/MsgType.pm (-18 / +12 lines)
Lines 23-28 use UNIVERSAL::can; Link Here
23
23
24
use vars qw(@ISA $VERSION @EXPORT_OK);
24
use vars qw(@ISA $VERSION @EXPORT_OK);
25
25
26
use constant INVALID_CARD => 'Invalid cardnumber';
27
use constant INVALID_PW   => 'Invalid password';
28
26
BEGIN {
29
BEGIN {
27
    $VERSION   = 3.07.00.049;
30
    $VERSION   = 3.07.00.049;
28
    @ISA       = qw(Exporter);
31
    @ISA       = qw(Exporter);
Lines 406-431 sub handle { Link Here
406
#
409
#
407
sub build_patron_status {
410
sub build_patron_status {
408
    my ( $patron, $lang, $fields, $server ) = @_;
411
    my ( $patron, $lang, $fields, $server ) = @_;
409
    my $overdrive_mode = $server->{account}->{'overdrive-mode'};
412
410
    my $patron_pwd = $fields->{ (FID_PATRON_PWD) };
413
    my $patron_pwd = $fields->{ (FID_PATRON_PWD) };
411
    my $resp = (PATRON_STATUS_RESP);
414
    my $resp = (PATRON_STATUS_RESP);
412
    my $password_ok = 1;
413
    my $password_rc;
415
    my $password_rc;
414
416
415
    if ($patron) {
417
    if ( $patron ) {
416
        if ($patron_pwd) {
418
        if ($patron_pwd) {
417
            $password_rc = $patron->check_password($patron_pwd);
419
            $password_rc = $patron->check_password($patron_pwd);
418
            $password_ok = 0 unless $password_rc;
419
        }
420
        }
420
        elsif ( $overdrive_mode
421
            and not exists $fields->{'AL'} # not block_request
422
            and not $patron_pwd ) # no password supplied
423
        {
424
            $password_ok = 0;
425
        }
426
    }
427
421
428
    if ( $patron and $password_ok ) {
429
        $resp .= patron_status_string($patron);
422
        $resp .= patron_status_string($patron);
430
        $resp .= $lang . timestamp();
423
        $resp .= $lang . timestamp();
431
        $resp .= add_field( FID_PERSONAL_NAME, $patron->name );
424
        $resp .= add_field( FID_PERSONAL_NAME, $patron->name );
Lines 443-455 sub build_patron_status { Link Here
443
            $resp .= maybe_add( FID_FEE_AMT,  $patron->fee_amount );
436
            $resp .= maybe_add( FID_FEE_AMT,  $patron->fee_amount );
444
        }
437
        }
445
438
446
        $resp .= maybe_add( FID_SCREEN_MSG, $patron->screen_msg, $server );
439
        my $msg = $patron->screen_msg;
440
        $msg .= ' -- '. INVALID_PW if $patron_pwd && !$password_rc;
441
        $resp .= maybe_add( FID_SCREEN_MSG, $msg, $server );
442
447
        $resp .= maybe_add( FID_SCREEN_MSG, $patron->{branchcode}, $server )
443
        $resp .= maybe_add( FID_SCREEN_MSG, $patron->{branchcode}, $server )
448
          if ( $server->{account}->{send_patron_home_library_in_af} );
444
          if ( $server->{account}->{send_patron_home_library_in_af} );
449
        $resp .= maybe_add( FID_PRINT_LINE, $patron->print_line );
445
        $resp .= maybe_add( FID_PRINT_LINE, $patron->print_line );
450
    } else {
451
446
452
        # Invalid patron id (and/or passwd for overdrive_mode)
447
    } else {
448
        # Invalid patron (cardnumber)
453
        # Report that the user has no privs.
449
        # Report that the user has no privs.
454
450
455
        # no personal name, and is invalid (if we're using 2.00)
451
        # no personal name, and is invalid (if we're using 2.00)
Lines 463-470 sub build_patron_status { Link Here
463
        ( $protocol_version >= 2 )
459
        ( $protocol_version >= 2 )
464
          and $resp .= add_field( FID_VALID_PATRON, 'N' );
460
          and $resp .= add_field( FID_VALID_PATRON, 'N' );
465
461
466
        $resp .=
462
        $resp .= maybe_add( FID_SCREEN_MSG, INVALID_CARD );
467
          maybe_add( FID_SCREEN_MSG, 'Invalid patron or patron password' );
468
    }
463
    }
469
464
470
    $resp .= add_field( FID_INST_ID, $fields->{ (FID_INST_ID) } );
465
    $resp .= add_field( FID_INST_ID, $fields->{ (FID_INST_ID) } );
471
- 

Return to bug 13871