summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2017-08-17 01:11:35 +0900
committerShinya Maeda <shinya@gitlab.com>2017-08-17 01:11:35 +0900
commit0789741f07e2772e1cb85e2d527e004d25e1e0a5 (patch)
tree859a41ca9296f1bffe24041b72fe0e6158c88152
parent808883bf2299ad72646fa9da25916937aad2056c (diff)
downloadgitlab-ce-feature/sm/2425-bkocked-user-can-not-create-pipeline.tar.gz
-rw-r--r--app/policies/global_policy.rb3
-rw-r--r--app/services/ci/create_pipeline_service.rb2
2 files changed, 4 insertions, 1 deletions
diff --git a/app/policies/global_policy.rb b/app/policies/global_policy.rb
index 1be7bbe9953..f6e6756e5e6 100644
--- a/app/policies/global_policy.rb
+++ b/app/policies/global_policy.rb
@@ -18,6 +18,7 @@ class GlobalPolicy < BasePolicy
prevent :receive_notifications
prevent :use_quick_actions
prevent :create_group
+ prevent :create_pipeline
end
rule { default }.policy do
@@ -26,6 +27,7 @@ class GlobalPolicy < BasePolicy
enable :access_git
enable :receive_notifications
enable :use_quick_actions
+ enable :create_pipeline
end
rule { blocked | internal }.policy do
@@ -34,6 +36,7 @@ class GlobalPolicy < BasePolicy
prevent :access_git
prevent :receive_notifications
prevent :use_quick_actions
+ prevent :create_pipeline
end
rule { can_create_group }.policy do
diff --git a/app/services/ci/create_pipeline_service.rb b/app/services/ci/create_pipeline_service.rb
index 149ccea3f53..eec01afc9a2 100644
--- a/app/services/ci/create_pipeline_service.rb
+++ b/app/services/ci/create_pipeline_service.rb
@@ -47,7 +47,7 @@ module Ci
private
def validate(triggering_user, ignore_skip_ci:, save_on_errors:)
- if current_user&.blocked?
+ unless can?(current_user, :create_pipeline)
return error('Blocked user can not create a new pipeline')
end