summaryrefslogtreecommitdiff
path: root/app/services/search/project_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/search/project_service.rb')
-rw-r--r--app/services/search/project_service.rb19
1 files changed, 13 insertions, 6 deletions
diff --git a/app/services/search/project_service.rb b/app/services/search/project_service.rb
index 5eba909c23b..d32534303be 100644
--- a/app/services/search/project_service.rb
+++ b/app/services/search/project_service.rb
@@ -2,6 +2,10 @@
module Search
class ProjectService
+ include Gitlab::Utils::StrongMemoize
+
+ ALLOWED_SCOPES = %w(notes issues merge_requests milestones wiki_blobs commits users).freeze
+
attr_accessor :project, :current_user, :params
def initialize(project, user, params)
@@ -13,15 +17,18 @@ module Search
params[:search],
project: project,
repository_ref: params[:repository_ref],
- filters: { state: params[:state] })
+ sort: params[:sort],
+ filters: { confidential: params[:confidential], state: params[:state] }
+ )
end
- def scope
- @scope ||= begin
- allowed_scopes = %w[notes issues merge_requests milestones wiki_blobs commits]
- allowed_scopes << 'users' if Feature.enabled?(:users_search, default_enabled: true)
+ def allowed_scopes
+ ALLOWED_SCOPES
+ end
- allowed_scopes.delete(params[:scope]) { 'blobs' }
+ def scope
+ strong_memoize(:scope) do
+ allowed_scopes.include?(params[:scope]) ? params[:scope] : 'blobs'
end
end
end