trigger.rb 760 字节
Newer Older
D
Douwe Maan 已提交
1 2
module Ci
  class Trigger < ActiveRecord::Base
3
    extend Gitlab::Ci::Model
D
Dmitriy Zaporozhets 已提交
4

D
Douwe Maan 已提交
5 6
    acts_as_paranoid

K
Kamil Trzciński 已提交
7
    belongs_to :project
8 9
    belongs_to :owner, class_name: "User"

10
    has_many :trigger_requests
D
Douwe Maan 已提交
11

12
    validates :token, presence: true, uniqueness: true
D
Douwe Maan 已提交
13 14 15 16 17 18 19 20 21 22 23

    before_validation :set_default_values

    def set_default_values
      self.token = SecureRandom.hex(15) if self.token.blank?
    end

    def last_trigger_request
      trigger_requests.last
    end

T
Tomasz Maczukin 已提交
24 25 26 27
    def last_used
      last_trigger_request.try(:created_at)
    end

D
Douwe Maan 已提交
28
    def short_token
29 30 31
      token[0...4]
    end

K
Kamil Trzciński 已提交
32 33 34 35 36 37
    def legacy?
      self.owner_id.blank?
    end

    def can_access_project?
      self.owner_id.blank? || Ability.allowed?(self.owner, :create_build, project)
D
Douwe Maan 已提交
38 39 40
    end
  end
end