diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-01-09 00:24:46 -0800 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-01-09 00:24:46 -0800 |
commit | f8f76fdbfd06184c53c4dc3832601f3c07aeba77 (patch) | |
tree | 6c15edae1c35296907230206f3431989a0678246 /app/controllers/search_controller.rb | |
parent | a10c08c4c75ea2753b092e66b1daed7ffe23a0b6 (diff) | |
parent | b89d8497f6bf911a74c350dfce6256c2a08ef59b (diff) | |
download | gitlab-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.rb | 27 |
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 |