From 58b17792e4f92a688119ee0149b8d7862a6caac1 Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Mon, 11 Sep 2023 20:47:34 +0000 Subject: [PATCH] Bug 34760: Confirm session ID is set to save OPAC search history to logged in user This patch confirms that a session ID has been set before trying to save search history to a logged in user on the OPAC. This depends on EnableOpacSearchHistory system preference being enabled. Apply the patch and test that you don't see an Error 500 page at any point through this plan: 1. Do an OPAC search, ensure you are not logged in 2. Confirm your search was saved to search history 3. Do another search, then log in 4. Confirm you are brought back to the search results after logging in 5. Confirm all search history from the session is visible Sponsored-by: Toi Ohomai Institute of Technology Signed-off-by: Salah Ghedda Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi (cherry picked from commit e7707b768ba50f2128e8efc50378ec3117962a60) Signed-off-by: Fridolin Somers (cherry picked from commit f11452e2dc63955d08365e6fe59182fe129adcb3) Signed-off-by: Matt Blenkinsop --- opac/opac-search.pl | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/opac/opac-search.pl b/opac/opac-search.pl index 96851496dc..e93b474689 100755 --- a/opac/opac-search.pl +++ b/opac/opac-search.pl @@ -717,24 +717,29 @@ for (my $i=0;$i<@servers;$i++) { $query_cgi_history =~ s/;/&/g; my $query_desc_history = join ", ", grep { defined $_ } $query_desc, $limit_desc; - unless ( $borrowernumber ) { - my $new_searches = C4::Search::History::add_to_session({ - cgi => $cgi, + if ( $borrowernumber and $cgi->cookie("CGISESSID") ) { + + # To the session (the user is logged in) + C4::Search::History::add( + { + userid => $borrowernumber, + sessionid => $cgi->cookie("CGISESSID"), query_desc => $query_desc_history, - query_cgi => $query_cgi_history, - total => $total, - type => "biblio", - }); + query_cgi => $query_cgi_history, + total => $total, + type => "biblio", + } + ); } else { - # To the session (the user is logged in) - C4::Search::History::add({ - userid => $borrowernumber, - sessionid => $cgi->cookie("CGISESSID"), - query_desc => $query_desc_history, - query_cgi => $query_cgi_history, - total => $total, - type => "biblio", - }); + my $new_searches = C4::Search::History::add_to_session( + { + cgi => $cgi, + query_desc => $query_desc_history, + query_cgi => $query_cgi_history, + total => $total, + type => "biblio", + } + ); } } $template->param( EnableOpacSearchHistory => 1 ); -- 2.39.2