ffzg/recall_notices.pl: added --interval and --dedup
[koha.git] / opac / opac-search-history.pl
index 7df51d9..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');
@@ -72,8 +76,7 @@ unless ( $loggedinuser ) {
         C4::Search::History::set_to_session({ cgi => $cgi, search_history => \@searches });
 
         # Redirecting to this same url so the user won't see the search history link in the header
-        my $uri = $cgi->url();
-        print $cgi->redirect(-uri => $uri);
+        print $cgi->redirect(-uri => '/cgi-bin/koha/opac-search-history.pl');
     # Showing search history
     } else {
         # Getting the searches from session
@@ -100,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 {
@@ -115,8 +119,7 @@ unless ( $loggedinuser ) {
             );
         }
         # Redirecting to this same url so the user won't see the search history link in the header
-        my $uri = $cgi->url();
-        print $cgi->redirect($uri);
+        print $cgi->redirect(-uri => '/cgi-bin/koha/opac-search-history.pl');
 
     # Showing search history
     } else {