From 1da964c4ceb0a3386d685d5cd0b913f096716d8b Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 20 Nov 2019 15:40:10 +0100 Subject: [PATCH] Bug 23276: Do not display tag if pref TagsEnabled is off If the pref TagsEnabled is off we should not display the tags at the OPAC. There is a message to tell that tags system is disabled, but the tags are displayed. We should redirect to 404 like we do in opac-topissues.pl and opac-suggestions.pl. Test plan: - Turn TagsEnabled on - Add some tags - Turn TagsEnabled off - Hit /cgi-bin/koha/opac-tags.pl => Without this patch you see a warning messaging saying that the tag system is disabled, but the tags are displayed => With this patch you get a 404 redirect Signed-off-by: David Nind --- .../opac-tmpl/bootstrap/en/modules/opac-tags.tt | 4 +-- opac/opac-tags.pl | 38 +++++++++++----------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-tags.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-tags.tt index 5b319cefef..18d7959da3 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-tags.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-tags.tt @@ -54,9 +54,7 @@ [% FOREACH ERROR IN ERRORS %]
There was a problem with this operation: - [% IF ( ERROR.tagsdisabled ) %] - Sorry, tags are not enabled on this system. - [% ELSIF ( ERROR.badparam ) %] + [% IF ( ERROR.badparam ) %] ERROR: illegal parameter [% ERROR.badparam | html %] [% ELSIF ( ERROR.login ) %] ERROR: You must log in to complete that action. diff --git a/opac/opac-tags.pl b/opac/opac-tags.pl index b125f8c2f6..be3c3d5886 100755 --- a/opac/opac-tags.pl +++ b/opac/opac-tags.pl @@ -38,7 +38,7 @@ use CGI::Cookie; # need to check cookies before having CGI parse the POST reques use C4::Auth qw(:DEFAULT check_cookie_auth); use C4::Context; use C4::Debug; -use C4::Output qw(:html :ajax pagination_bar); +use C4::Output qw(:html :ajax ); use C4::Scrubber; use C4::Biblio; use C4::Items qw(GetItemsInfo GetHiddenItemnumbers); @@ -87,24 +87,19 @@ sub ajax_auth_cgi { # returns CGI object my $is_ajax = is_ajax(); my $openadds = C4::Context->preference('TagsModeration') ? 0 : 1; my $query = ($is_ajax) ? &ajax_auth_cgi({}) : CGI->new(); -unless (C4::Context->preference('TagsEnabled')) { - push @errors, {+ tagsdisabled=>1 }; - push @globalErrorIndexes, $#errors; -} else { - foreach ($query->param) { - if (/^newtag(.*)/) { - my $biblionumber = $1; - unless ($biblionumber =~ /^\d+$/) { - $debug and warn "$_ references non numerical biblionumber '$biblionumber'"; - push @errors, {+'badparam' => $_ }; - push @globalErrorIndexes, $#errors; - next; - } - $newtags{$biblionumber} = $query->param($_); - } elsif (/^del(\d+)$/) { - push @deltags, $1; - } - } +foreach ($query->param) { + if (/^newtag(.*)/) { + my $biblionumber = $1; + unless ($biblionumber =~ /^\d+$/) { + $debug and warn "$_ references non numerical biblionumber '$biblionumber'"; + push @errors, {+'badparam' => $_ }; + push @globalErrorIndexes, $#errors; + next; + } + $newtags{$biblionumber} = $query->param($_); + } elsif (/^del(\d+)$/) { + push @deltags, $1; + } } my $add_op = (scalar(keys %newtags) + scalar(@deltags)) ? 1 : 0; @@ -122,6 +117,11 @@ if ($is_ajax) { }); } +unless ( C4::Context->preference('TagsEnabled') ) { + print $query->redirect("/cgi-bin/koha/errors/404.pl"); + exit; +} + if ($add_op) { unless ($loggedinuser) { push @errors, {+'login' => 1 }; -- 2.11.0