Commit 9663b69b authored by Aleksei Lipniagov's avatar Aleksei Lipniagov

Merge branch 'john-mason-fix-21001' into 'master'

Strip whitespace from search parameters

See merge request gitlab-org/gitlab!71328
parents bb3a0e9c 1ca5f157
...@@ -12,6 +12,7 @@ class SearchController < ApplicationController ...@@ -12,6 +12,7 @@ class SearchController < ApplicationController
around_action :allow_gitaly_ref_name_caching around_action :allow_gitaly_ref_name_caching
before_action :block_anonymous_global_searches, :check_scope_global_search_enabled, except: :opensearch before_action :block_anonymous_global_searches, :check_scope_global_search_enabled, except: :opensearch
before_action :strip_surrounding_whitespace_from_search, except: :opensearch
skip_before_action :authenticate_user! skip_before_action :authenticate_user!
requires_cross_project_access if: -> do requires_cross_project_access if: -> do
search_term_present = params[:search].present? || params[:term].present? search_term_present = params[:search].present? || params[:term].present?
...@@ -197,6 +198,10 @@ class SearchController < ApplicationController ...@@ -197,6 +198,10 @@ class SearchController < ApplicationController
def count_action_name? def count_action_name?
action_name.to_sym == :count action_name.to_sym == :count
end end
def strip_surrounding_whitespace_from_search
%i(term search).each { |param| params[param]&.strip! }
end
end end
SearchController.prepend_mod_with('SearchController') SearchController.prepend_mod_with('SearchController')
...@@ -215,6 +215,16 @@ RSpec.describe SearchController do ...@@ -215,6 +215,16 @@ RSpec.describe SearchController do
end end
end end
it 'strips surrounding whitespace from search query' do
get :show, params: { scope: 'notes', search: ' foobar ' }
expect(assigns[:search_term]).to eq 'foobar'
end
it 'strips surrounding whitespace from autocomplete term' do
expect(controller).to receive(:search_autocomplete_opts).with('youcompleteme')
get :autocomplete, params: { term: ' youcompleteme ' }
end
it 'finds issue comments' do it 'finds issue comments' do
project = create(:project, :public) project = create(:project, :public)
note = create(:note_on_issue, project: project) note = create(:note_on_issue, project: project)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment