summaryrefslogtreecommitdiff
path: root/app/controllers/search_controller.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-01-09 00:24:46 -0800
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-01-09 00:24:46 -0800
commitf8f76fdbfd06184c53c4dc3832601f3c07aeba77 (patch)
tree6c15edae1c35296907230206f3431989a0678246 /app/controllers/search_controller.rb
parenta10c08c4c75ea2753b092e66b1daed7ffe23a0b6 (diff)
parentb89d8497f6bf911a74c350dfce6256c2a08ef59b (diff)
downloadgitlab-ce-f8f76fdbfd06184c53c4dc3832601f3c07aeba77.tar.gz
Merge pull request #5427 from karlhungus/feature_search_code_in_public_repos
Allow public repo searching
Diffstat (limited to 'app/controllers/search_controller.rb')
-rw-r--r--app/controllers/search_controller.rb27
1 files changed, 17 insertions, 10 deletions
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb
index 2a2748dc1fb..2bdc9c366f2 100644
--- a/app/controllers/search_controller.rb
+++ b/app/controllers/search_controller.rb
@@ -3,16 +3,7 @@ class SearchController < ApplicationController
project_id = params[:project_id]
group_id = params[:group_id]
- project_ids = current_user.authorized_projects.map(&:id)
-
- if group_id.present?
- @group = Group.find(group_id)
- group_project_ids = @group.projects.map(&:id)
- project_ids.select! { |id| group_project_ids.include?(id)}
- elsif project_id.present?
- @project = Project.find(params[:project_id])
- project_ids.select! { |id| id == project_id.to_i}
- end
+ project_ids = find_project_ids(group_id, project_id)
result = SearchContext.new(project_ids, current_user, params).execute
@@ -23,4 +14,20 @@ class SearchController < ApplicationController
@blobs = Kaminari.paginate_array(result[:blobs]).page(params[:page]).per(20)
@total_results = @projects.count + @merge_requests.count + @issues.count + @wiki_pages.count + @blobs.total_count
end
+
+ private
+
+ def find_project_ids(group_id, project_id)
+ project_ids = current_user.authorized_projects.map(&:id)
+
+ if group_id.present?
+ @group = Group.find(group_id)
+ group_project_ids = @group.projects.map(&:id)
+ project_ids.select! { |id| group_project_ids.include?(id) }
+ elsif project_id.present?
+ @project = Project.find(project_id)
+ project_ids = @project.public ? [@project.id] : project_ids.select { |id| id == project_id.to_i }
+ end
+ project_ids
+ end
end