diff --git a/app/controllers/concerns/blacklight/search_context.rb b/app/controllers/concerns/blacklight/search_context.rb index f8c91a64fa..aa73f783b4 100644 --- a/app/controllers/concerns/blacklight/search_context.rb +++ b/app/controllers/concerns/blacklight/search_context.rb @@ -14,7 +14,7 @@ module Blacklight::SearchContext class_methods do # Save the submitted search parameters in the search session def record_search_parameters opts = { only: :index } - before_action :set_current_search_session, opts + before_action :set_current_search_session, opts.merge(unless: proc { |c| c.send :skip_session_tracking? }) end end @@ -39,7 +39,7 @@ def set_current_search_session end def find_search_session - if agent_is_crawler? || skip_session_tracking? + if skip_session_tracking? nil elsif params[:search_context].present? find_or_initialize_search_session_from_params JSON.parse(params[:search_context]) @@ -81,9 +81,14 @@ def agent_is_crawler? def skip_session_tracking? skip_session_proc = blacklight_config.skip_session_tracking - return false if skip_session_proc.nil? - - skip_session_proc.call(request, params) + case skip_session_proc + when TrueClass + true + when Proc + skip_session_proc.call(request, params) + else + agent_is_crawler? + end end def find_or_initialize_search_session_from_params params