Bug 23276: Do not display tag if pref TagsEnabled is off
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 20 Nov 2019 14:40:10 +0000 (15:40 +0100)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 15 Jun 2020 08:32:29 +0000 (10:32 +0200)
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>

koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-tags.tt
opac/opac-tags.pl

index 5b319ce..18d7959 100644 (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.
index b125f8c..be3c3d5 100755 (executable)
@@ -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 };