Bug 7534: (QA follow-up) Use Koha.Preference template plugin to fetch the pref's...
[koha.git] / opac / opac-search-history.pl
index 486bd08..3ae4aad 100755 (executable)
@@ -26,8 +26,8 @@ use C4::Output;
 use C4::Log;
 use C4::Items;
 use C4::Debug;
-use C4::Dates;
 use C4::Search::History;
+
 use URI::Escape;
 use POSIX qw(strftime);
 
@@ -40,12 +40,16 @@ my ($template, $loggedinuser, $cookie) = get_template_and_user(
         template_name => "opac-search-history.tt",
         query => $cgi,
         type => "opac",
-        authnotrequired => 1,
-        flagsrequired => {borrowers => 1},
+        authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ),
         debug => 1,
     }
 );
 
+unless ( C4::Context->preference("EnableOpacSearchHistory") ) {
+    print $cgi->redirect("/cgi-bin/koha/errors/404.pl"); # escape early
+    exit;
+}
+
 my $type = $cgi->param('type');
 my $action = $cgi->param('action') || q{};
 my $previous = $cgi->param('previous');
@@ -55,7 +59,7 @@ unless ( $loggedinuser ) {
     # Deleting search history
     if ( $action eq 'delete') {
         # Deleting session's search history
-        my @id = $cgi->param('id');
+        my @id = $cgi->multi_param('id');
         my $all = not scalar( @id );
 
         my $type = $cgi->param('type');
@@ -99,11 +103,12 @@ unless ( $loggedinuser ) {
 
     # Deleting search history
     if ( $action eq 'delete' ) {
-        my @id = $cgi->param('id');
+        my @id = $cgi->multi_param('id');
         if ( @id ) {
             C4::Search::History::delete(
                 {
-                    id => [ $cgi->param('id') ],
+                    userid => $loggedinuser,
+                    id     => [ $cgi->param('id') ],
                 }
             );
         } else {