mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-09 12:46:07 +10:00
Merge branch '15591-fix-project-leak-in-new-mr-view' into 'master'
Prevent information disclosure via new merge request page Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/15591. See merge request !1963
This commit is contained in:
committed by
Robert Speicher
parent
55bbc7e3df
commit
9622eec0ad
@@ -7,6 +7,9 @@ module MergeRequests
|
||||
merge_request.can_be_created = false
|
||||
merge_request.compare_commits = []
|
||||
merge_request.source_project = project unless merge_request.source_project
|
||||
|
||||
merge_request.target_project = nil unless can?(current_user, :read_project, merge_request.target_project)
|
||||
|
||||
merge_request.target_project ||= (project.forked_from_project || project)
|
||||
merge_request.target_branch ||= merge_request.target_project.default_branch
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
require 'spec_helper'
|
||||
|
||||
feature 'Create New Merge Request', feature: true, js: true do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project, :public) }
|
||||
|
||||
before do
|
||||
project.team << [user, :master]
|
||||
|
||||
login_as user
|
||||
visit namespace_project_merge_requests_path(project.namespace, project)
|
||||
end
|
||||
|
||||
context 'when target project cannot be viewed by the current user' do
|
||||
it 'does not leak the private project name & namespace' do
|
||||
private_project = create(:project, :private)
|
||||
|
||||
visit new_namespace_project_merge_request_path(project.namespace, project, merge_request: { target_project_id: private_project.id })
|
||||
|
||||
expect(page).not_to have_content private_project.to_reference
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user