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 <david@davidnind.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
(cherry picked from commit 6fc316d2ee)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
Jonathan Druart 2019-11-20 15:40:10 +01:00 committed by Lucas Gass
parent 29efdfc9af
commit 9893fb4ec5
2 changed files with 20 additions and 22 deletions

View File

@ -54,9 +54,7 @@
[% FOREACH ERROR IN ERRORS %]
<div class="alert">
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.

View File

@ -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 };