From 703829797ddf2819da8dffc00ca051fe064ac16f Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 11 Oct 2024 13:51:52 +0000 Subject: [PATCH] Bug 37041: Adjust remaining MARC21 value builder plugins Content-Type: text/plain; charset=utf-8 Test plan: Edit a biblio record and verify active plugins work as expected. (See first test plan) Test hitting some plugins directly. Run t/db_dependent/FrameworkPlugin.t Run xt/find-missing-auth_checks.t --- cataloguing/value_builder/EXAMPLE.pl | 2 ++ cataloguing/value_builder/barcode_manual.pl | 11 ++--------- cataloguing/value_builder/callnumber-KU.pl | 2 ++ cataloguing/value_builder/callnumber.pl | 2 ++ cataloguing/value_builder/cn_browser.pl | 3 ++- cataloguing/value_builder/marc21_field_005.pl | 11 ++--------- cataloguing/value_builder/marc21_field_006.pl | 6 +++--- cataloguing/value_builder/marc21_field_007.pl | 4 ++-- cataloguing/value_builder/marc21_field_008.pl | 8 ++++---- .../value_builder/marc21_field_008_authorities.pl | 4 ++-- .../marc21_field_008_classifications.pl | 4 ++-- cataloguing/value_builder/marc21_field_245h.pl | 12 ++---------- cataloguing/value_builder/marc21_field_260b.pl | 12 ++---------- cataloguing/value_builder/marc21_leader.pl | 4 ++-- .../value_builder/marc21_leader_authorities.pl | 5 ++--- .../value_builder/marc21_linking_section.pl | 12 +++++------- cataloguing/value_builder/marc21_orgcode.pl | 13 +++---------- cataloguing/value_builder/stocknumber.pl | 12 +++--------- cataloguing/value_builder/stocknumberAV.pl | 4 ++-- cataloguing/value_builder/stocknumberam123.pl | 4 ++-- cataloguing/value_builder/upload.pl | 14 ++++---------- 21 files changed, 52 insertions(+), 97 deletions(-) diff --git a/cataloguing/value_builder/EXAMPLE.pl b/cataloguing/value_builder/EXAMPLE.pl index 691e69f8e2..4293294636 100755 --- a/cataloguing/value_builder/EXAMPLE.pl +++ b/cataloguing/value_builder/EXAMPLE.pl @@ -57,6 +57,8 @@ use C4::Output qw( output_html_with_http_headers ); # event.data.id. This makes a difference when the field is cloned or has # been created dynamically (as in additem.js). +C4::Auth::check_value_builder_caller(); + my $builder= sub { my $params = shift; my $id = $params->{id}; diff --git a/cataloguing/value_builder/barcode_manual.pl b/cataloguing/value_builder/barcode_manual.pl index 67891789e3..cc578660f7 100755 --- a/cataloguing/value_builder/barcode_manual.pl +++ b/cataloguing/value_builder/barcode_manual.pl @@ -22,20 +22,13 @@ use Modern::Perl; +use C4::Auth (); use C4::Context; use C4::Barcodes::ValueBuilder; use C4::Biblio qw( GetMarcFromKohaField ); use Koha::DateUtils qw( dt_from_string ); -use CGI qw ( -utf8 ); -use C4::Auth qw( check_cookie_auth ); -my $input = CGI->new; -my ($auth_status) = - check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => 1 } ); -if ( $auth_status ne "ok" ) { - print $input->header( -type => 'text/plain', -status => '403 Forbidden' ); - exit 0; -} +C4::Auth::check_value_builder_caller(); my $builder = sub { my ( $params ) = @_; diff --git a/cataloguing/value_builder/callnumber-KU.pl b/cataloguing/value_builder/callnumber-KU.pl index d6327a5306..d86fbf9851 100755 --- a/cataloguing/value_builder/callnumber-KU.pl +++ b/cataloguing/value_builder/callnumber-KU.pl @@ -42,6 +42,8 @@ CCC QW - returns first unused number CCC QWxx starting with CCC QW01 =cut +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $res=" diff --git a/cataloguing/value_builder/callnumber.pl b/cataloguing/value_builder/callnumber.pl index 74dabaf182..8d3a151ec7 100755 --- a/cataloguing/value_builder/callnumber.pl +++ b/cataloguing/value_builder/callnumber.pl @@ -39,6 +39,8 @@ In this case, a callnumber has this form : "PREFIX 0009678570". =cut +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $res=" diff --git a/cataloguing/value_builder/cn_browser.pl b/cataloguing/value_builder/cn_browser.pl index 55128fc7bc..80060236d7 100755 --- a/cataloguing/value_builder/cn_browser.pl +++ b/cataloguing/value_builder/cn_browser.pl @@ -24,9 +24,10 @@ use Modern::Perl; use C4::Auth qw( get_template_and_user ); use C4::ClassSource qw( GetClassSort ); use C4::Output qw( output_html_with_http_headers ); - use Koha::ClassSources; +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $function_name = $params->{id}; diff --git a/cataloguing/value_builder/marc21_field_005.pl b/cataloguing/value_builder/marc21_field_005.pl index 6428bd61a9..26662c9b6b 100755 --- a/cataloguing/value_builder/marc21_field_005.pl +++ b/cataloguing/value_builder/marc21_field_005.pl @@ -20,16 +20,9 @@ # along with Koha; if not, see . use Modern::Perl; +use C4::Auth (); -use CGI qw ( -utf8 ); -use C4::Auth qw( check_cookie_auth ); -my $input = CGI->new; -my ($auth_status) = - check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => 1 } ); -if ( $auth_status ne "ok" ) { - print $input->header( -type => 'text/plain', -status => '403 Forbidden' ); - exit 0; -} +C4::Auth::check_value_builder_caller(); my $builder = sub { my ( $params ) = @_; diff --git a/cataloguing/value_builder/marc21_field_006.pl b/cataloguing/value_builder/marc21_field_006.pl index b4f28521f9..b3eb3514d4 100755 --- a/cataloguing/value_builder/marc21_field_006.pl +++ b/cataloguing/value_builder/marc21_field_006.pl @@ -20,14 +20,14 @@ # along with Koha; if not, see . use Modern::Perl; +use XML::LibXML; + use C4::Auth qw( get_template_and_user ); -use CGI qw ( -utf8 ); use C4::Context; - use C4::Search; use C4::Output qw( output_html_with_http_headers ); -use XML::LibXML; +C4::Auth::check_value_builder_caller(); my $builder = sub { my ( $params ) = @_; diff --git a/cataloguing/value_builder/marc21_field_007.pl b/cataloguing/value_builder/marc21_field_007.pl index 093653d1bf..25b126da6f 100755 --- a/cataloguing/value_builder/marc21_field_007.pl +++ b/cataloguing/value_builder/marc21_field_007.pl @@ -22,12 +22,12 @@ use Modern::Perl; use C4::Auth qw( get_template_and_user ); -use CGI qw ( -utf8 ); use C4::Context; - use C4::Search; use C4::Output qw( output_html_with_http_headers ); +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $function_name = $params->{id}; diff --git a/cataloguing/value_builder/marc21_field_008.pl b/cataloguing/value_builder/marc21_field_008.pl index 08b1540f69..456a2c9733 100755 --- a/cataloguing/value_builder/marc21_field_008.pl +++ b/cataloguing/value_builder/marc21_field_008.pl @@ -20,16 +20,16 @@ # along with Koha; if not, see . use Modern::Perl; +use XML::LibXML; + use C4::Auth qw( get_template_and_user ); -use CGI qw ( -utf8 ); use C4::Context; - use C4::Search; use C4::Output qw( output_html_with_http_headers ); - -use XML::LibXML; use Koha::Util::FrameworkPlugin qw( biblio_008 ); +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; diff --git a/cataloguing/value_builder/marc21_field_008_authorities.pl b/cataloguing/value_builder/marc21_field_008_authorities.pl index e7a7f168d8..6a63cfab28 100755 --- a/cataloguing/value_builder/marc21_field_008_authorities.pl +++ b/cataloguing/value_builder/marc21_field_008_authorities.pl @@ -21,9 +21,7 @@ use Modern::Perl; use C4::Auth qw( get_template_and_user ); -use CGI qw ( -utf8 ); use C4::Context; - use C4::Search; use C4::Output qw( output_html_with_http_headers ); use Koha::Util::FrameworkPlugin qw|date_entered|; @@ -31,6 +29,8 @@ use Koha::Util::FrameworkPlugin qw|date_entered|; use constant FIXLEN_DATA_ELTS => '|| aca||aabn | a|a d'; use constant PREF_008 => 'MARCAuthorityControlField008'; +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $function_name = $params->{id}; diff --git a/cataloguing/value_builder/marc21_field_008_classifications.pl b/cataloguing/value_builder/marc21_field_008_classifications.pl index c5979f8f7e..4061576cdb 100755 --- a/cataloguing/value_builder/marc21_field_008_classifications.pl +++ b/cataloguing/value_builder/marc21_field_008_classifications.pl @@ -17,15 +17,15 @@ use Modern::Perl; use C4::Auth qw( get_template_and_user ); -use CGI qw ( -utf8 ); use C4::Context; - use C4::Search; use C4::Output qw( output_html_with_http_headers ); use Koha::Util::FrameworkPlugin qw|date_entered|; use constant FIXLEN_DATA_ELTS => 'baaaaaaa'; +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $function_name = $params->{id}; diff --git a/cataloguing/value_builder/marc21_field_245h.pl b/cataloguing/value_builder/marc21_field_245h.pl index 4fe4a2f1e7..523ebdc2be 100755 --- a/cataloguing/value_builder/marc21_field_245h.pl +++ b/cataloguing/value_builder/marc21_field_245h.pl @@ -20,17 +20,9 @@ # along with Koha; if not, see . use Modern::Perl; +use C4::Auth (); -use CGI qw ( -utf8 ); -use C4::Auth qw( check_cookie_auth ); -my $input = CGI->new; -my ($auth_status) = - check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => 1 } ); -if ( $auth_status ne "ok" ) { - print $input->header( -type => 'text/plain', -status => '403 Forbidden' ); - exit 0; -} - +C4::Auth::check_value_builder_caller(); my $builder = sub { my ( $params ) = @_; diff --git a/cataloguing/value_builder/marc21_field_260b.pl b/cataloguing/value_builder/marc21_field_260b.pl index e9a74a07ba..3efb748300 100755 --- a/cataloguing/value_builder/marc21_field_260b.pl +++ b/cataloguing/value_builder/marc21_field_260b.pl @@ -25,17 +25,9 @@ biblioitems.publishercode =cut use Modern::Perl; -use C4::Context; +use C4::Auth (); -use CGI qw ( -utf8 ); -use C4::Auth qw( check_cookie_auth ); -my $input = CGI->new; -my ($auth_status) = - check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => 1 } ); -if ( $auth_status ne "ok" ) { - print $input->header( -type => 'text/plain', -status => '403 Forbidden' ); - exit 0; -} +C4::Auth::check_value_builder_caller(); my $builder = sub { my ( $params ) = @_; diff --git a/cataloguing/value_builder/marc21_leader.pl b/cataloguing/value_builder/marc21_leader.pl index 85f7346329..63bf8d6acc 100755 --- a/cataloguing/value_builder/marc21_leader.pl +++ b/cataloguing/value_builder/marc21_leader.pl @@ -20,12 +20,12 @@ # along with Koha; if not, see . use Modern::Perl; -use CGI qw ( -utf8 ); - use C4::Auth qw( get_template_and_user ); use C4::Context; use C4::Output qw( output_html_with_http_headers ); +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $function_name = $params->{id}; diff --git a/cataloguing/value_builder/marc21_leader_authorities.pl b/cataloguing/value_builder/marc21_leader_authorities.pl index 04a55ea28b..1f30cb8faa 100755 --- a/cataloguing/value_builder/marc21_leader_authorities.pl +++ b/cataloguing/value_builder/marc21_leader_authorities.pl @@ -22,12 +22,11 @@ use Modern::Perl; use C4::Auth qw( get_template_and_user ); -use CGI qw ( -utf8 ); use C4::Context; - -use C4::Search; use C4::Output qw( output_html_with_http_headers ); +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $function_name = $params->{id}; diff --git a/cataloguing/value_builder/marc21_linking_section.pl b/cataloguing/value_builder/marc21_linking_section.pl index 0bb391ccf0..ca5f6bc40c 100755 --- a/cataloguing/value_builder/marc21_linking_section.pl +++ b/cataloguing/value_builder/marc21_linking_section.pl @@ -21,21 +21,19 @@ use Modern::Perl; -use CGI qw ( -utf8 ); -use C4::Output qw( output_html_with_http_headers ); -use C4::Context; -use C4::Search qw( new_record_from_zebra ); use C4::Auth qw( get_template_and_user ); -use C4::Output qw( output_html_with_http_headers ); - use C4::Biblio qw( TransformMarcToKoha ); +use C4::Context; +use C4::Output qw( output_html_with_http_headers ); +use C4::Search qw( new_record_from_zebra ); use Koha::Biblios; use Koha::ItemTypes; - use Koha::SearchEngine; use Koha::SearchEngine::Search; +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $function_name = $params->{id}; diff --git a/cataloguing/value_builder/marc21_orgcode.pl b/cataloguing/value_builder/marc21_orgcode.pl index 0dd985803c..8f78443015 100755 --- a/cataloguing/value_builder/marc21_orgcode.pl +++ b/cataloguing/value_builder/marc21_orgcode.pl @@ -21,18 +21,11 @@ # along with Koha; if not, see . use Modern::Perl; +use C4::Auth (); use C4::Context; - use Koha::Libraries; -use CGI qw ( -utf8 ); -use C4::Auth qw( check_cookie_auth ); -my $input = CGI->new; -my ($auth_status) = - check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => 1 } ); -if ( $auth_status ne "ok" ) { - print $input->header( -type => 'text/plain', -status => '403 Forbidden' ); - exit 0; -} + +C4::Auth::check_value_builder_caller(); my $builder = sub { my ( $params ) = @_; diff --git a/cataloguing/value_builder/stocknumber.pl b/cataloguing/value_builder/stocknumber.pl index 61885d12b0..726602749e 100755 --- a/cataloguing/value_builder/stocknumber.pl +++ b/cataloguing/value_builder/stocknumber.pl @@ -20,16 +20,10 @@ # along with Koha; if not, see . use Modern::Perl; +use C4::Auth (); use C4::Context; -use CGI qw ( -utf8 ); -use C4::Auth qw( check_cookie_auth ); -my $input = CGI->new; -my ($auth_status) = - check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => 1 } ); -if ( $auth_status ne "ok" ) { - print $input->header( -type => 'text/plain', -status => '403 Forbidden' ); - exit 0; -} + +C4::Auth::check_value_builder_caller(); my $builder = sub { my ( $params ) = @_; diff --git a/cataloguing/value_builder/stocknumberAV.pl b/cataloguing/value_builder/stocknumberAV.pl index c158ec7688..ce0d12c8ac 100755 --- a/cataloguing/value_builder/stocknumberAV.pl +++ b/cataloguing/value_builder/stocknumberAV.pl @@ -20,8 +20,6 @@ # along with Koha; if not, see . use Modern::Perl; -use CGI qw ( -utf8 ); - use C4::Auth qw( get_template_and_user ); use C4::Output qw( output_html_with_http_headers ); use Koha::AuthorisedValues; @@ -43,6 +41,8 @@ PREFIX containing letters, a space separator and 10 digits with leading =cut +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $res = qq{ diff --git a/cataloguing/value_builder/stocknumberam123.pl b/cataloguing/value_builder/stocknumberam123.pl index 05565fec80..73b253a45c 100755 --- a/cataloguing/value_builder/stocknumberam123.pl +++ b/cataloguing/value_builder/stocknumberam123.pl @@ -20,8 +20,6 @@ # along with Koha; if not, see . use Modern::Perl; -use CGI qw ( -utf8 ); - use C4::Auth qw( get_template_and_user ); use C4::Context; use C4::Output qw( output_html_with_http_headers ); @@ -40,6 +38,8 @@ In this case, a stocknumber has this form : "PREFIX 0009678570". =cut +C4::Auth::check_value_builder_caller(); + my $builder = sub { my ( $params ) = @_; my $res=" diff --git a/cataloguing/value_builder/upload.pl b/cataloguing/value_builder/upload.pl index eeb422d525..abf5ce6aca 100755 --- a/cataloguing/value_builder/upload.pl +++ b/cataloguing/value_builder/upload.pl @@ -20,7 +20,6 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use Modern::Perl; # This plugin does not use the plugin launcher. It refers to tools/upload.pl. # That script and template support using it as a plugin. @@ -30,15 +29,10 @@ use Modern::Perl; # the possibility to delete the uploaded file. If the field is empty, you # can upload a new file. -use CGI qw ( -utf8 ); -use C4::Auth qw( check_cookie_auth ); -my $input = CGI->new; -my ($auth_status) = - check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => 1 } ); -if ( $auth_status ne "ok" ) { - print $input->header( -type => 'text/plain', -status => '403 Forbidden' ); - exit 0; -} +use Modern::Perl; +use C4::Auth (); + +C4::Auth::check_value_builder_caller(); my $builder = sub { my ( $params ) = @_; -- 2.39.5