summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/search_controller.rb2
-rw-r--r--app/helpers/search_helper.rb2
-rw-r--r--app/services/search/global_service.rb3
-rw-r--r--app/services/search/project_service.rb7
-rw-r--r--lib/api/search.rb9
5 files changed, 20 insertions, 3 deletions
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb
index a7b789f848a..90d4bc674d9 100644
--- a/app/controllers/search_controller.rb
+++ b/app/controllers/search_controller.rb
@@ -56,6 +56,8 @@ class SearchController < ApplicationController
end
def eager_load_user_status
+ return if Feature.disabled?(:users_search, default_enabled: true)
+
@search_objects = @search_objects.eager_load(:status) # rubocop:disable CodeReuse/ActiveRecord
end
diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb
index 97fcb200c67..8110377850b 100644
--- a/app/helpers/search_helper.rb
+++ b/app/helpers/search_helper.rb
@@ -203,6 +203,8 @@ module SearchHelper
end
def search_tabs?(tab)
+ return false if Feature.disabled?(:users_search, default_enabled: true)
+
if @project
project_search_tabs?(:members)
else
diff --git a/app/services/search/global_service.rb b/app/services/search/global_service.rb
index b19e9f57450..f711839e389 100644
--- a/app/services/search/global_service.rb
+++ b/app/services/search/global_service.rb
@@ -23,7 +23,8 @@ module Search
def allowed_scopes
strong_memoize(:allowed_scopes) do
- %w[issues merge_requests milestones users]
+ allowed_scopes = %w[issues merge_requests milestones]
+ allowed_scopes << 'users' if Feature.enabled?(:users_search, default_enabled: true)
end
end
diff --git a/app/services/search/project_service.rb b/app/services/search/project_service.rb
index 0d82c5cd5b2..32d5cd7ddb2 100644
--- a/app/services/search/project_service.rb
+++ b/app/services/search/project_service.rb
@@ -16,7 +16,12 @@ module Search
end
def scope
- @scope ||= %w[notes issues merge_requests milestones wiki_blobs commits users].delete(params[:scope]) { 'blobs' }
+ @scope ||= begin
+ allowed_scopes = %w[notes issues merge_requests milestones wiki_blobs commits]
+ allowed_scopes << 'users' if Feature.enabled?(:users_search, default_enabled: true)
+
+ allowed_scopes.delete(params[:scope]) { 'blobs' }
+ end
end
end
end
diff --git a/lib/api/search.rb b/lib/api/search.rb
index 01eaf2f142a..d271923dbd6 100644
--- a/lib/api/search.rb
+++ b/lib/api/search.rb
@@ -54,7 +54,14 @@ module API
end
params :scope do |options|
- values = SCOPE_ENTITY.stringify_keys.slice(*options[:values]).keys
+ scope_entities =
+ if Feature.enabled?(:users_search, default_enabled: true)
+ SCOPE_ENTITY
+ else
+ SCOPE_ENTITY.reject { |key, value| key == :users }
+ end
+
+ values = scope_entities.stringify_keys.slice(*options[:values]).keys
requires :scope,
type: String,