|
Lines 33-70
use C4::Auth qw( in_iprange get_session get_template_and_user );
Link Here
|
| 33 |
use C4::Output qw( output_html_with_http_headers ); |
33 |
use C4::Output qw( output_html_with_http_headers ); |
| 34 |
use C4::Members qw( IssueSlip ); |
34 |
use C4::Members qw( IssueSlip ); |
| 35 |
|
35 |
|
|
|
36 |
|
| 36 |
my $input = CGI->new; |
37 |
my $input = CGI->new; |
| 37 |
unless ( in_iprange(C4::Context->preference('SelfCheckAllowByIPRanges')) ) { |
38 |
unless (C4::Context->preference('WebBasedSelfCheck')) { |
| 38 |
print $input->header(status => '403 Forbidden - functionality not available from your location'); |
39 |
# redirect to OPAC home if self-check is not enabled |
|
|
40 |
print $input->redirect("/cgi-bin/koha/opac-main.pl"); |
| 39 |
exit; |
41 |
exit; |
| 40 |
} |
42 |
} |
| 41 |
|
43 |
|
| 42 |
my $sessionID = $input->cookie("CGISESSID"); |
44 |
unless ( in_iprange(C4::Context->preference('SelfCheckAllowByIPRanges')) ) { |
| 43 |
my $session = get_session($sessionID); |
45 |
# redirect to OPAC home if self-checkout not permitted from current IP |
|
|
46 |
print $input->redirect("/cgi-bin/koha/opac-main.pl"); |
| 47 |
exit; |
| 48 |
} |
| 44 |
|
49 |
|
| 45 |
my $print = $input->param('print'); |
50 |
if (C4::Context->preference('AutoSelfCheckAllowed')) |
| 46 |
my $error = $input->param('error'); |
51 |
{ |
|
|
52 |
my $AutoSelfCheckID = C4::Context->preference('AutoSelfCheckID'); |
| 53 |
my $AutoSelfCheckPass = C4::Context->preference('AutoSelfCheckPass'); |
| 54 |
$input->param(-name=>'userid',-values=>[$AutoSelfCheckID]); |
| 55 |
$input->param(-name=>'password',-values=>[$AutoSelfCheckPass]); |
| 56 |
$input->param(-name=>'koha_login_context',-values=>['sco']); |
| 57 |
} |
| 58 |
$input->param(-name=>'sco_user_login',-values=>[1]); |
| 47 |
|
59 |
|
| 48 |
# patrons still need to be able to print receipts |
60 |
# patrons still need to be able to print receipts |
| 49 |
my ( $template, $loggedinuser, $cookie ) = get_template_and_user( |
61 |
my ( $template, $loggedinuser, $cookie ) = get_template_and_user( |
| 50 |
{ |
62 |
{ |
| 51 |
template_name => "sco/printslip.tt", |
63 |
template_name => "sco/printslip.tt", |
|
|
64 |
flagsrequired => { self_check => "self_checkout_module" }, |
| 52 |
query => $input, |
65 |
query => $input, |
| 53 |
type => "opac", |
66 |
type => "opac", |
| 54 |
} |
67 |
} |
| 55 |
); |
68 |
); |
| 56 |
|
69 |
|
| 57 |
my $borrowernumber = $input->param('borrowernumber'); |
70 |
my $jwt = $input->cookie('JWT'); |
| 58 |
my $branch=C4::Context->userenv->{'branch'}; |
71 |
my $patronid = $jwt ? Koha::Token->new->decode_jwt({ token => $jwt }) : undef; |
|
|
72 |
my $patron = $patronid ? Koha::Patrons->find( { cardnumber => $patronid } ) : undef; |
| 73 |
|
| 74 |
unless ( $patron ) { |
| 75 |
print $input->header(-type => 'text/plain', -status => '403 Forbidden'); |
| 76 |
exit; |
| 77 |
} |
| 78 |
|
| 79 |
my $print = $input->param('print'); |
| 80 |
my $error = $input->param('error'); |
| 81 |
|
| 59 |
my ($slip, $is_html); |
82 |
my ($slip, $is_html); |
| 60 |
if (my $letter = IssueSlip ($session->param('branch') || $branch, $borrowernumber, $print eq "qslip")) { |
83 |
if (my $letter = IssueSlip ($patron->branchcode, $patron->borrowernumber, $print eq "qslip")) { |
| 61 |
$slip = $letter->{content}; |
84 |
$slip = $letter->{content}; |
| 62 |
$is_html = $letter->{is_html}; |
85 |
$is_html = $letter->{is_html}; |
| 63 |
} |
86 |
} |
| 64 |
|
87 |
|
| 65 |
$template->{VARS}->{slip} = $slip; |
88 |
$template->{VARS}->{slip} = $slip; |
| 66 |
$template->{VARS}->{plain} = !$is_html; |
89 |
$template->{VARS}->{plain} = !$is_html; |
| 67 |
$template->{VARS}->{borrowernumber} = $borrowernumber; |
90 |
$template->{VARS}->{borrowernumber} = $patron->borrowernumber; |
| 68 |
$template->{VARS}->{stylesheet} = C4::Context->preference("SlipCSS"); |
91 |
$template->{VARS}->{stylesheet} = C4::Context->preference("SlipCSS"); |
| 69 |
$template->{VARS}->{error} = $error; |
92 |
$template->{VARS}->{error} = $error; |
| 70 |
|
93 |
|
| 71 |
- |
|
|