diff options
Diffstat (limited to 'app/policies/releases')
-rw-r--r-- | app/policies/releases/link_policy.rb | 7 | ||||
-rw-r--r-- | app/policies/releases/source_policy.rb | 13 |
2 files changed, 20 insertions, 0 deletions
diff --git a/app/policies/releases/link_policy.rb b/app/policies/releases/link_policy.rb new file mode 100644 index 00000000000..4a662fafb2f --- /dev/null +++ b/app/policies/releases/link_policy.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +module Releases + class LinkPolicy < BasePolicy + delegate { @subject.release.project } + end +end diff --git a/app/policies/releases/source_policy.rb b/app/policies/releases/source_policy.rb new file mode 100644 index 00000000000..8b86b925589 --- /dev/null +++ b/app/policies/releases/source_policy.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module Releases + class SourcePolicy < BasePolicy + delegate { @subject.project } + + rule { can?(:public_access) | can?(:reporter_access) }.policy do + enable :read_release_sources + end + + rule { ~can?(:read_release) }.prevent :read_release_sources + end +end |