diff options
Diffstat (limited to 'app/policies/ci/build_policy.rb')
-rw-r--r-- | app/policies/ci/build_policy.rb | 15 |
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 |