trigger.rb 870 字节
Newer Older
1 2
# frozen_string_literal: true

D
Douwe Maan 已提交
3 4
module Ci
  class Trigger < ActiveRecord::Base
5
    extend Gitlab::Ci::Model
6
    include IgnorableColumn
7
    include Presentable
D
Dmitriy Zaporozhets 已提交
8

9
    ignore_column :deleted_at
D
Douwe Maan 已提交
10

K
Kamil Trzciński 已提交
11
    belongs_to :project
12 13
    belongs_to :owner, class_name: "User"

14
    has_many :trigger_requests
D
Douwe Maan 已提交
15

16
    validates :token, presence: true, uniqueness: true
D
Douwe Maan 已提交
17 18 19 20 21 22 23 24 25 26 27

    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 已提交
28 29 30 31
    def last_used
      last_trigger_request.try(:created_at)
    end

D
Douwe Maan 已提交
32
    def short_token
33
      token[0...4] if token.present?
34 35
    end

K
Kamil Trzciński 已提交
36 37 38 39 40 41
    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 已提交
42 43 44
    end
  end
end