BigW Consortium Gitlab

Commit 91c7b266 by Izaak Alpert Committed by Izaak Alpert

Allow public repo searching

GITLAB-1386 Change-Id: I9a0bbe8db1a9bb00cef33b3e1854d78844b70a45
parent c946defb
...@@ -3,16 +3,7 @@ class SearchController < ApplicationController ...@@ -3,16 +3,7 @@ class SearchController < ApplicationController
project_id = params[:project_id] project_id = params[:project_id]
group_id = params[:group_id] group_id = params[:group_id]
project_ids = current_user.authorized_projects.map(&:id) project_ids = find_project_ids(group_id, project_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
result = SearchContext.new(project_ids, params).execute result = SearchContext.new(project_ids, params).execute
...@@ -23,4 +14,18 @@ class SearchController < ApplicationController ...@@ -23,4 +14,18 @@ class SearchController < ApplicationController
@blobs = Kaminari.paginate_array(result[:blobs]).page(params[:page]).per(20) @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 @total_results = @projects.count + @merge_requests.count + @issues.count + @wiki_pages.count + @blobs.total_count
end end
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 end
require 'spec_helper'
describe SearchController do
let(:project) { create(:project, public: true) }
let(:user) { create(:user) }
before do
sign_in(user)
end
describe '#find_project_ids' do
it 'should include public projects ids when searching within a single project' do
project_ids = controller.find_project_ids(nil, project.id)
project_ids.size.should == 1
project_ids[0].should == project.id
end
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment