diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 14:18:50 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-06-18 14:18:50 +0300 |
commit | 8c7f4e9d5f36cff46365a7f8c4b9c21578c1e781 (patch) | |
tree | a77e7fe7a93de11213032ed4ab1f33a3db51b738 /app/policies/ci/build_policy.rb | |
parent | 00b35af3db1abfe813a778f643dad221aad51fca (diff) |
Add latest changes from gitlab-org/gitlab@13-1-stable-ee
Diffstat (limited to 'app/policies/ci/build_policy.rb')
-rw-r--r-- | app/policies/ci/build_policy.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/policies/ci/build_policy.rb b/app/policies/ci/build_policy.rb index 12892a69257..0879a740f8a 100644 --- a/app/policies/ci/build_policy.rb +++ b/app/policies/ci/build_policy.rb @@ -36,6 +36,10 @@ module Ci @subject.has_terminal? end + condition(:is_web_ide_terminal, scope: :subject) do + @subject.pipeline.webide? + end + rule { protected_ref | archived }.policy do prevent :update_build prevent :update_commit_status @@ -50,6 +54,24 @@ module Ci end rule { can?(:update_build) & terminal }.enable :create_build_terminal + + rule { is_web_ide_terminal & can?(:create_web_ide_terminal) & (admin | owner_of_job) }.policy do + enable :read_web_ide_terminal + enable :update_web_ide_terminal + end + + rule { is_web_ide_terminal & ~can?(:update_web_ide_terminal) }.policy do + prevent :create_build_terminal + end + + rule { can?(:update_web_ide_terminal) & terminal }.policy do + enable :create_build_terminal + enable :create_build_service_proxy + end + + rule { ~can?(:build_service_proxy_enabled) }.policy do + prevent :create_build_service_proxy + end end end |