summaryrefslogtreecommitdiff
path: root/app/services/ci/play_build_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/ci/play_build_service.rb')
-rw-r--r--app/services/ci/play_build_service.rb18
1 files changed, 13 insertions, 5 deletions
diff --git a/app/services/ci/play_build_service.rb b/app/services/ci/play_build_service.rb
index 4953b1ea5fc..073c1a2d0e0 100644
--- a/app/services/ci/play_build_service.rb
+++ b/app/services/ci/play_build_service.rb
@@ -3,11 +3,7 @@
module Ci
class PlayBuildService < ::BaseService
def execute(build, job_variables_attributes = nil)
- raise Gitlab::Access::AccessDeniedError unless can?(current_user, :play_job, build)
-
- if job_variables_attributes.present? && !can?(current_user, :set_pipeline_variables, project)
- raise Gitlab::Access::AccessDeniedError
- end
+ check_access!(build, job_variables_attributes)
# Try to enqueue the build, otherwise create a duplicate.
#
@@ -23,5 +19,17 @@ module Ci
Ci::Build.retry(build, current_user)
end
end
+
+ private
+
+ def check_access!(build, job_variables_attributes)
+ raise Gitlab::Access::AccessDeniedError unless can?(current_user, :play_job, build)
+
+ if job_variables_attributes.present? && !can?(current_user, :set_pipeline_variables, project)
+ raise Gitlab::Access::AccessDeniedError
+ end
+ end
end
end
+
+Ci::PlayBuildService.prepend_mod_with('Ci::PlayBuildService')