Commit 9984f07a authored by Lin Jen-Shin's avatar Lin Jen-Shin
parent d44305eb
...@@ -23,6 +23,10 @@ module Ci ...@@ -23,6 +23,10 @@ module Ci
return error('Insufficient permissions to create a new pipeline') return error('Insufficient permissions to create a new pipeline')
end end
unless trigger_request && trigger_request.trigger.owner
return error('Legacy trigger without a owner is not allowed')
end
unless branch? || tag? unless branch? || tag?
return error('Reference not found') return error('Reference not found')
end end
...@@ -59,9 +63,7 @@ module Ci ...@@ -59,9 +63,7 @@ module Ci
def triggering_user_allowed_for_ref?(trigger_request, ref) def triggering_user_allowed_for_ref?(trigger_request, ref)
triggering_user = current_user || trigger_request.trigger.owner triggering_user = current_user || trigger_request.trigger.owner
(triggering_user && Ci::Pipeline.allowed_to_create?(triggering_user, project, ref)
Ci::Pipeline.allowed_to_create?(triggering_user, project, ref)) ||
!project.protected_for?(ref)
end end
def process! def process!
......
...@@ -409,5 +409,18 @@ describe Ci::CreatePipelineService, services: true do ...@@ -409,5 +409,18 @@ describe Ci::CreatePipelineService, services: true do
it_behaves_like 'when ref is protected' it_behaves_like 'when ref is protected'
end end
context 'when ref is not protected' do
context 'when trigger belongs to no one' do
let(:user) {}
let(:trigger_request) { create(:ci_trigger_request) }
it 'does not create a pipeline' do
expect(execute_service(trigger_request: trigger_request))
.not_to be_persisted
expect(Ci::Pipeline.count).to eq(0)
end
end
end
end 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