summaryrefslogtreecommitdiff
path: root/app/policies/ci/trigger_policy.rb
blob: 5592ac3081218e4fb3bf08fed43440af97e3189a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module Ci
  class TriggerPolicy < BasePolicy
    delegate { @subject.project }

    with_options scope: :subject, score: 0
    condition(:legacy) { @subject.legacy? }

    with_score 0
    condition(:is_owner) { @user && @subject.owner_id == @user.id }

    rule { ~can?(:admin_build) }.prevent :admin_trigger
    rule { legacy | is_owner }.enable :admin_trigger

    rule { can?(:admin_build) }.enable :manage_trigger
  end
end