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,