Lines 20-25
use CGI qw ( -utf8 );
Link Here
|
20 |
use C4::Auth qw(&check_api_auth); |
20 |
use C4::Auth qw(&check_api_auth); |
21 |
|
21 |
|
22 |
use Koha::Patron::Attributes; |
22 |
use Koha::Patron::Attributes; |
|
|
23 |
use Koha::Plugins::Handler; |
23 |
|
24 |
|
24 |
use UNIVERSAL::can; |
25 |
use UNIVERSAL::can; |
25 |
|
26 |
|
Lines 469-474
sub build_patron_status {
Link Here
|
469 |
return $resp; |
470 |
return $resp; |
470 |
} |
471 |
} |
471 |
|
472 |
|
|
|
473 |
# Return true if the patron is valid for the particular client |
474 |
# that issued the SIP2 request. |
475 |
|
476 |
sub check_patron { |
477 |
my ( $patron, $server ) = @_; |
478 |
|
479 |
if ( $patron ) { |
480 |
my $plugin_class = $server->{account}->{plugin_class}; |
481 |
if ($plugin_class) { |
482 |
return Koha::Plugins::Handler->run({ |
483 |
class => $plugin_class, |
484 |
method => 'sip2_validate_patron', |
485 |
params => { patron => $patron, server => $server }, |
486 |
}); |
487 |
} |
488 |
} |
489 |
return 1; |
490 |
} |
491 |
|
472 |
sub handle_patron_status { |
492 |
sub handle_patron_status { |
473 |
my ( $self, $server ) = @_; |
493 |
my ( $self, $server ) = @_; |
474 |
my $ils = $server->{ils}; |
494 |
my $ils = $server->{ils}; |
Lines 480-485
sub handle_patron_status {
Link Here
|
480 |
|
500 |
|
481 |
$ils->check_inst_id( $fields->{ (FID_INST_ID) }, "handle_patron_status" ); |
501 |
$ils->check_inst_id( $fields->{ (FID_INST_ID) }, "handle_patron_status" ); |
482 |
$patron = $ils->find_patron( $fields->{ (FID_PATRON_ID) } ); |
502 |
$patron = $ils->find_patron( $fields->{ (FID_PATRON_ID) } ); |
|
|
503 |
$patron = undef unless ( check_patron ( $patron, $server ) ); |
483 |
$resp = build_patron_status( $patron, $lang, $fields, $server ); |
504 |
$resp = build_patron_status( $patron, $lang, $fields, $server ); |
484 |
$self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} ); |
505 |
$self->write_msg( $resp, undef, $server->{account}->{terminator}, $server->{account}->{encoding} ); |
485 |
return (PATRON_STATUS_REQ); |
506 |
return (PATRON_STATUS_REQ); |
Lines 933-938
sub handle_patron_info {
Link Here
|
933 |
$end = $fields->{ (FID_END_ITEM) }; |
954 |
$end = $fields->{ (FID_END_ITEM) }; |
934 |
|
955 |
|
935 |
$patron = $ils->find_patron($patron_id); |
956 |
$patron = $ils->find_patron($patron_id); |
|
|
957 |
$patron = undef unless ( check_patron ( $patron, $server ) ); |
936 |
|
958 |
|
937 |
$resp = (PATRON_INFO_RESP); |
959 |
$resp = (PATRON_INFO_RESP); |
938 |
if ($patron) { |
960 |
if ($patron) { |