summaryrefslogtreecommitdiff
path: root/app/policies/ci/build_policy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/policies/ci/build_policy.rb')
-rw-r--r--app/policies/ci/build_policy.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/app/policies/ci/build_policy.rb b/app/policies/ci/build_policy.rb
index 3efc07421e4..7e69e1fdd88 100644
--- a/app/policies/ci/build_policy.rb
+++ b/app/policies/ci/build_policy.rb
@@ -45,6 +45,21 @@ module Ci
@subject.pipeline.webide?
end
+ condition(:debug_mode, scope: :subject, score: 32) do
+ @subject.debug_mode?
+ end
+
+ condition(:project_read_build, scope: :subject) do
+ can?(:read_build, @subject.project)
+ end
+
+ condition(:project_update_build, scope: :subject) do
+ can?(:update_build, @subject.project)
+ end
+
+ rule { project_read_build }.enable :read_build_trace
+ rule { debug_mode & ~project_update_build }.prevent :read_build_trace
+
rule { ~protected_environment_access & (protected_ref | archived) }.policy do
prevent :update_build
prevent :update_commit_status