Bug 3150: (QA follow-up) Tidy scripts

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Kyle Hall 2023-03-14 13:04:14 -04:00 committed by Tomas Cohen Arazi
parent a426134fe3
commit 326c4e23ce
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F
4 changed files with 220 additions and 200 deletions

View file

@ -23,7 +23,7 @@ use Carp qw( carp );
use Try::Tiny qw( catch try );
use C4::Biblio qw(
GetMarcSubjects
GetMarcSubjects
);
use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_and_exit output_html_with_http_headers );
@ -34,12 +34,12 @@ use Koha::Token;
my $query = CGI->new;
my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
{
template_name => "basket/sendbasketform.tt",
query => $query,
type => "intranet",
flagsrequired => { catalogue => 1 },
template_name => "basket/sendbasketform.tt",
query => $query,
type => "intranet",
flagsrequired => { catalogue => 1 },
}
);
@ -48,14 +48,16 @@ my $email_add = $query->param('email_add');
my $dbh = C4::Context->dbh;
if ( $email_add ) {
if ($email_add) {
output_and_exit( $query, $cookie, $template, 'wrong_csrf_token' )
unless Koha::Token->new->check_csrf({
unless Koha::Token->new->check_csrf(
{
session_id => scalar $query->cookie('CGISESSID'),
token => scalar $query->param('csrf_token'),
});
token => scalar $query->param('csrf_token'),
}
);
my $patron = Koha::Patrons->find( $borrowernumber );
my $patron = Koha::Patrons->find($borrowernumber);
my $user_email = $patron->first_valid_email_address;
my $comment = $query->param('comment');
@ -63,53 +65,53 @@ if ( $email_add ) {
my @bibs = split( /\//, $bib_list );
my $iso2709;
foreach my $bib ( @bibs ) {
my $biblio = Koha::Biblios->find( $bib ) or next;
foreach my $bib (@bibs) {
my $biblio = Koha::Biblios->find($bib) or next;
$iso2709 .= $biblio->metadata->record->as_usmarc();
}
if ( !defined $iso2709 ) {
carp "Error sending mail: empty basket";
$template->param( error => 1 );
} elsif ( !defined $user_email or $user_email eq '' ) {
}
elsif ( !defined $user_email or $user_email eq '' ) {
carp "Error sending mail: sender's email address is invalid";
$template->param( error => 1 );
} else {
my %loops = (
biblio => \@bibs,
);
}
else {
my %loops = ( biblio => \@bibs, );
my %substitute = (
comment => $comment,
);
my %substitute = ( comment => $comment, );
my $letter = C4::Letters::GetPreparedLetter(
module => 'catalogue',
module => 'catalogue',
letter_code => 'CART',
lang => $patron->lang,
tables => {
lang => $patron->lang,
tables => {
borrowers => $borrowernumber,
},
message_transport_type => 'email',
loops => \%loops,
substitute => \%substitute,
loops => \%loops,
substitute => \%substitute,
);
my $attachment = {
filename => 'basket.iso2709',
type => 'application/octet-stream',
content => Encode::encode("UTF-8", $iso2709),
type => 'application/octet-stream',
content => Encode::encode( "UTF-8", $iso2709 ),
};
my $message_id = C4::Letters::EnqueueLetter({
letter => $letter,
message_transport_type => 'email',
to_address => $email_add,
reply_address => $user_email,
attachments => [$attachment],
});
my $message_id = C4::Letters::EnqueueLetter(
{
letter => $letter,
message_transport_type => 'email',
to_address => $email_add,
reply_address => $user_email,
attachments => [$attachment],
}
);
C4::Letters::SendQueuedMessages({ message_id => $message_id });
C4::Letters::SendQueuedMessages( { message_id => $message_id } );
$template->param( SENT => 1 );
}
@ -122,7 +124,9 @@ else {
url => "/cgi-bin/koha/basket/sendbasket.pl",
suggestion => C4::Context->preference("suggestion"),
virtualshelves => C4::Context->preference("virtualshelves"),
csrf_token => Koha::Token->new->generate_csrf({ session_id => scalar $query->cookie('CGISESSID'), }),
csrf_token => Koha::Token->new->generate_csrf(
{ session_id => scalar $query->cookie('CGISESSID'), }
),
);
output_html_with_http_headers $query, $cookie, $template->output;
}

View file

@ -25,7 +25,7 @@ use Carp qw( carp );
use Try::Tiny qw( catch try );
use C4::Biblio qw(
GetMarcSubjects
GetMarcSubjects
);
use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
@ -37,83 +37,87 @@ use Koha::Token;
my $query = CGI->new;
my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
{
template_name => "opac-sendbasketform.tt",
query => $query,
type => "opac",
template_name => "opac-sendbasketform.tt",
query => $query,
type => "opac",
}
);
my $bib_list = $query->param('bib_list') || '';
my $email_add = $query->param('email_add');
my $bib_list = $query->param('bib_list') || '';
my $email_add = $query->param('email_add');
if ( $email_add ) {
die "Wrong CSRF token" unless Koha::Token->new->check_csrf({
session_id => scalar $query->cookie('CGISESSID'),
token => scalar $query->param('csrf_token'),
});
if ($email_add) {
die "Wrong CSRF token"
unless Koha::Token->new->check_csrf(
{
session_id => scalar $query->cookie('CGISESSID'),
token => scalar $query->param('csrf_token'),
}
);
my $patron = Koha::Patrons->find( $borrowernumber );
my $patron = Koha::Patrons->find($borrowernumber);
my $user_email = $patron->first_valid_email_address;
my $comment = $query->param('comment');
my $comment = $query->param('comment');
my @bibs = split( /\//, $bib_list );
my $iso2709;
foreach my $bib ( @bibs ) {
my $biblio = Koha::Biblios->find( $bib ) or next;
foreach my $bib (@bibs) {
my $biblio = Koha::Biblios->find($bib) or next;
$iso2709 .= $biblio->metadata->record->as_usmarc();
};
}
if ( !defined $iso2709 ) {
carp "Error sending mail: empty basket";
$template->param( error => 1 );
} elsif ( !defined $user_email or $user_email eq '' ) {
}
elsif ( !defined $user_email or $user_email eq '' ) {
carp "Error sending mail: sender's email address is invalid";
$template->param( error => 1 );
} else {
my %loops = (
biblio => \@bibs,
);
}
else {
my %loops = ( biblio => \@bibs, );
my %substitute = (
comment => $comment,
);
my %substitute = ( comment => $comment, );
my $letter = C4::Letters::GetPreparedLetter(
module => 'catalogue',
module => 'catalogue',
letter_code => 'CART',
lang => $patron->lang,
tables => {
lang => $patron->lang,
tables => {
borrowers => $borrowernumber,
},
message_transport_type => 'email',
loops => \%loops,
substitute => \%substitute,
loops => \%loops,
substitute => \%substitute,
);
my $attachment = {
filename => 'basket.iso2709',
type => 'application/octet-stream',
content => Encode::encode("UTF-8", $iso2709),
type => 'application/octet-stream',
content => Encode::encode( "UTF-8", $iso2709 ),
};
my $message_id = C4::Letters::EnqueueLetter({
letter => $letter,
message_transport_type => 'email',
to_address => $email_add,
reply_address => $user_email,
attachments => [$attachment],
});
my $message_id = C4::Letters::EnqueueLetter(
{
letter => $letter,
message_transport_type => 'email',
to_address => $email_add,
reply_address => $user_email,
attachments => [$attachment],
}
);
C4::Letters::SendQueuedMessages({ message_id => $message_id });
C4::Letters::SendQueuedMessages( { message_id => $message_id } );
$template->param( SENT => 1 );
}
$template->param( email_add => $email_add );
output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 };
output_html_with_http_headers $query, $cookie, $template->output, undef,
{ force_no_caching => 1 };
}
else {
my $new_session_id = $query->cookie('CGISESSID');
@ -122,8 +126,9 @@ else {
url => "/cgi-bin/koha/opac-sendbasket.pl",
suggestion => C4::Context->preference("suggestion"),
virtualshelves => C4::Context->preference("virtualshelves"),
csrf_token => Koha::Token->new->generate_csrf(
{ session_id => $new_session_id, } ),
csrf_token =>
Koha::Token->new->generate_csrf( { session_id => $new_session_id, } ),
);
output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 };
output_html_with_http_headers $query, $cookie, $template->output, undef,
{ force_no_caching => 1 };
}

View file

@ -26,9 +26,9 @@ use Try::Tiny qw( catch try );
use C4::Auth qw( get_template_and_user );
use C4::Biblio qw(
GetFrameworkCode
GetMarcISBN
GetMarcSubjects
GetFrameworkCode
GetMarcISBN
GetMarcSubjects
);
use C4::Output qw( output_html_with_http_headers );
use Koha::Biblios;
@ -39,103 +39,112 @@ use Koha::Virtualshelves;
my $query = CGI->new;
# if virtualshelves is disabled, leave immediately
if ( ! C4::Context->preference('virtualshelves') ) {
if ( !C4::Context->preference('virtualshelves') ) {
print $query->redirect("/cgi-bin/koha/errors/404.pl");
exit;
}
my ( $template, $borrowernumber, $cookie ) = get_template_and_user (
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
{
template_name => "opac-sendshelfform.tt",
query => $query,
type => "opac",
template_name => "opac-sendshelfform.tt",
query => $query,
type => "opac",
}
);
my $shelfid = $query->param('shelfid');
my $email = $query->param('email');
my $shelf = Koha::Virtualshelves->find( $shelfid );
if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) {
if ( $email ) {
my $comment = $query->param('comment');
my $shelf = Koha::Virtualshelves->find($shelfid);
if ( $shelf and $shelf->can_be_viewed($borrowernumber) ) {
if ($email) {
my $comment = $query->param('comment');
my $patron = Koha::Patrons->find( $borrowernumber );
my $user_email = $patron->first_valid_email_address;
my $shelf = Koha::Virtualshelves->find( $shelfid );
my $contents = $shelf->get_contents;
my $iso2709;
my $patron = Koha::Patrons->find($borrowernumber);
my $user_email = $patron->first_valid_email_address;
my $shelf = Koha::Virtualshelves->find($shelfid);
my $contents = $shelf->get_contents;
my $iso2709;
my @biblionumbers;
while ( my $content = $contents->next ) {
push @biblionumbers, $content->biblionumber;
my $biblio = Koha::Biblios->find($content->biblionumber);
$iso2709 .= $biblio->metadata->record->as_usmarc();
};
my @biblionumbers;
while ( my $content = $contents->next ) {
push @biblionumbers, $content->biblionumber;
my $biblio = Koha::Biblios->find( $content->biblionumber );
$iso2709 .= $biblio->metadata->record->as_usmarc();
}
if ( !defined $iso2709 ) {
carp "Error sending mail: empty list";
$template->param( error => 1 );
} elsif ( !defined $user_email or $user_email eq '' ) {
carp "Error sending mail: sender's email address is invalid";
$template->param( error => 1 );
} else {
my %loops = (
biblio => \@biblionumbers,
);
if ( !defined $iso2709 ) {
carp "Error sending mail: empty list";
$template->param( error => 1 );
}
elsif ( !defined $user_email or $user_email eq '' ) {
carp "Error sending mail: sender's email address is invalid";
$template->param( error => 1 );
}
else {
my %loops = ( biblio => \@biblionumbers, );
my %substitute = (
comment => $comment,
listname => $shelf->shelfname,
);
my %substitute = (
comment => $comment,
listname => $shelf->shelfname,
);
my $letter = C4::Letters::GetPreparedLetter(
module => 'catalogue',
letter_code => 'LIST',
lang => $patron->lang,
tables => {
borrowers => $borrowernumber,
},
message_transport_type => 'email',
loops => \%loops,
substitute => \%substitute,
my $letter = C4::Letters::GetPreparedLetter(
module => 'catalogue',
letter_code => 'LIST',
lang => $patron->lang,
tables => {
borrowers => $borrowernumber,
},
message_transport_type => 'email',
loops => \%loops,
substitute => \%substitute,
);
my $attachment = {
filename => 'list.iso2709',
type => 'application/octet-stream',
content => Encode::encode( "UTF-8", $iso2709 ),
};
my $message_id = C4::Letters::EnqueueLetter(
{
letter => $letter,
message_transport_type => 'email',
borrowernumber => $patron->borrowernumber,
to_address => $email,
reply_address => $user_email,
attachments => [$attachment],
}
);
C4::Letters::SendQueuedMessages( { message_id => $message_id } );
$template->param( SENT => 1 );
}
$template->param(
shelfid => $shelfid,
email => $email,
);
output_html_with_http_headers $query, $cookie, $template->output,
undef, { force_no_caching => 1 };
my $attachment = {
filename => 'list.iso2709',
type => 'application/octet-stream',
content => Encode::encode("UTF-8", $iso2709),
};
my $message_id = C4::Letters::EnqueueLetter({
letter => $letter,
message_transport_type => 'email',
borrowernumber => $patron->borrowernumber,
to_address => $email,
reply_address => $user_email,
attachments => [$attachment],
});
C4::Letters::SendQueuedMessages({ message_id => $message_id });
$template->param( SENT => 1 );
}
$template->param(
shelfid => $shelfid,
email => $email,
);
output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 };
} else {
$template->param( shelfid => $shelfid,
url => "/cgi-bin/koha/opac-sendshelf.pl",
);
output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 };
}
} else {
$template->param( invalidlist => 1,
url => "/cgi-bin/koha/opac-sendshelf.pl",
);
output_html_with_http_headers $query, $cookie, $template->output, undef, { force_no_caching => 1 };
else {
$template->param(
shelfid => $shelfid,
url => "/cgi-bin/koha/opac-sendshelf.pl",
);
output_html_with_http_headers $query, $cookie, $template->output,
undef, { force_no_caching => 1 };
}
}
else {
$template->param(
invalidlist => 1,
url => "/cgi-bin/koha/opac-sendshelf.pl",
);
output_html_with_http_headers $query, $cookie, $template->output, undef,
{ force_no_caching => 1 };
}

View file

@ -26,12 +26,12 @@ use Try::Tiny qw( catch try );
use C4::Auth qw( get_template_and_user );
use C4::Biblio qw(
GetMarcISBN
GetMarcSubjects
GetMarcISBN
GetMarcSubjects
);
use C4::Output qw(
output_html_with_http_headers
output_and_exit
output_html_with_http_headers
output_and_exit
);
use Koha::Biblios;
@ -42,80 +42,82 @@ my $query = CGI->new;
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
{
template_name => "virtualshelves/sendshelfform.tt",
query => $query,
type => "intranet",
flagsrequired => { catalogue => 1 },
template_name => "virtualshelves/sendshelfform.tt",
query => $query,
type => "intranet",
flagsrequired => { catalogue => 1 },
}
);
my $shelfid = $query->param('shelfid');
my $to_address = $query->param('email');
my $shelf = Koha::Virtualshelves->find( $shelfid );
my $shelf = Koha::Virtualshelves->find($shelfid);
output_and_exit( $query, $cookie, $template, 'insufficient_permission' )
if $shelf && !$shelf->can_be_viewed( $borrowernumber );
if $shelf && !$shelf->can_be_viewed($borrowernumber);
if ($to_address) {
my $comment = $query->param('comment');
my $patron = Koha::Patrons->find( $borrowernumber );
my $patron = Koha::Patrons->find($borrowernumber);
my $user_email = $patron->first_valid_email_address;
my $contents = $shelf->get_contents;
my $contents = $shelf->get_contents;
my @biblionumbers;
my $iso2709;
while ( my $content = $contents->next ) {
push @biblionumbers, $content->biblionumber;
my $biblio = Koha::Biblios->find($content->biblionumber);
my $biblio = Koha::Biblios->find( $content->biblionumber );
$iso2709 .= $biblio->metadata->record->as_usmarc();
};
}
if ( !defined $iso2709 ) {
carp "Error sending mail: empty basket";
$template->param( error => 1 );
} elsif ( !defined $user_email or $user_email eq '' ) {
}
elsif ( !defined $user_email or $user_email eq '' ) {
carp "Error sending mail: sender's email address is invalid";
$template->param( error => 1 );
} else {
my %loops = (
biblio => \@biblionumbers,
);
}
else {
my %loops = ( biblio => \@biblionumbers, );
my %substitute = (
comment => $comment,
comment => $comment,
listname => $shelf->shelfname,
);
my $letter = C4::Letters::GetPreparedLetter(
module => 'catalogue',
module => 'catalogue',
letter_code => 'LIST',
lang => $patron->lang,
tables => {
lang => $patron->lang,
tables => {
borrowers => $borrowernumber,
},
message_transport_type => 'email',
loops => \%loops,
substitute => \%substitute,
loops => \%loops,
substitute => \%substitute,
);
my $attachment = {
filename => 'shelf.iso2709',
type => 'application/octet-stream',
content => Encode::encode("UTF-8", $iso2709),
type => 'application/octet-stream',
content => Encode::encode( "UTF-8", $iso2709 ),
};
my $message_id = C4::Letters::EnqueueLetter({
letter => $letter,
message_transport_type => 'email',
borrowernumber => $patron->borrowernumber,
to_address => $to_address,
reply_address => $user_email,
attachments => [$attachment],
});
my $message_id = C4::Letters::EnqueueLetter(
{
letter => $letter,
message_transport_type => 'email',
borrowernumber => $patron->borrowernumber,
to_address => $to_address,
reply_address => $user_email,
attachments => [$attachment],
}
);
C4::Letters::SendQueuedMessages({ message_id => $message_id });
C4::Letters::SendQueuedMessages( { message_id => $message_id } );
$template->param( SENT => 1 );
}