Fix bad conflict resolution

This commit is contained in:
Lin Jen-Shin 2017-07-04 05:20:44 +08:00
parent 39573c6dde
commit 005870d5ce
4 changed files with 21 additions and 19 deletions

View File

@ -1,6 +1,6 @@
module Ci
class PipelinePolicy < BasePolicy
delegate { pipeline.project }
delegate { @subject.project }
condition(:user_cannot_update) do
!::Gitlab::UserAccess

View File

@ -51,19 +51,13 @@ module Ci
return error('No stages / jobs for this pipeline.')
end
process!
process! do
pipeline_created_counter.increment(source: source)
end
end
private
def triggering_user_allowed_for_ref?(trigger_request, ref)
triggering_user = current_user || trigger_request.trigger.owner
(triggering_user &&
Ci::Pipeline.allowed_to_create?(triggering_user, project, ref)) ||
!project.protected_for?(ref)
end
def process!
Ci::Pipeline.transaction do
update_merge_requests_head_pipeline if pipeline.save
@ -75,11 +69,19 @@ module Ci
cancel_pending_pipelines if project.auto_cancel_pending_pipelines?
pipeline_created_counter.increment(source: source)
yield
pipeline.tap(&:process!)
end
def triggering_user_allowed_for_ref?(trigger_request, ref)
triggering_user = current_user || trigger_request.trigger.owner
(triggering_user &&
Ci::Pipeline.allowed_to_create?(triggering_user, project, ref)) ||
!project.protected_for?(ref)
end
def update_merge_requests_head_pipeline
return unless pipeline.latest?

View File

@ -110,7 +110,7 @@ describe Ci::BuildPolicy, :models do
let(:branch_policy) { :no_one_can_push }
it 'does not include ability to update build' do
expect(policies).to be_disallowed :update_build
expect(policy).to be_disallowed :update_build
end
end
@ -118,7 +118,7 @@ describe Ci::BuildPolicy, :models do
let(:branch_policy) { :developers_can_push }
it 'includes ability to update build' do
expect(policies).to be_allowed :update_build
expect(policy).to be_allowed :update_build
end
end
@ -126,7 +126,7 @@ describe Ci::BuildPolicy, :models do
let(:branch_policy) { :developers_can_merge }
it 'includes ability to update build' do
expect(policies).to be_allowed :update_build
expect(policy).to be_allowed :update_build
end
end
end

View File

@ -4,8 +4,8 @@ describe Ci::PipelinePolicy, :models do
let(:user) { create(:user) }
let(:pipeline) { create(:ci_empty_pipeline, project: project) }
let(:policies) do
described_class.abilities(user, pipeline).to_set
let(:policy) do
described_class.new(user, pipeline)
end
describe 'rules' do
@ -23,7 +23,7 @@ describe Ci::PipelinePolicy, :models do
let(:branch_policy) { :no_one_can_push }
it 'does not include ability to update pipeline' do
expect(policies).to be_disallowed :update_pipeline
expect(policy).to be_disallowed :update_pipeline
end
end
@ -31,7 +31,7 @@ describe Ci::PipelinePolicy, :models do
let(:branch_policy) { :developers_can_push }
it 'includes ability to update pipeline' do
expect(policies).to be_allowed :update_pipeline
expect(policy).to be_allowed :update_pipeline
end
end
@ -39,7 +39,7 @@ describe Ci::PipelinePolicy, :models do
let(:branch_policy) { :developers_can_merge }
it 'includes ability to update pipeline' do
expect(policies).to be_allowed :update_pipeline
expect(policy).to be_allowed :update_pipeline
end
end
end