diff options
Diffstat (limited to 'app/models/ci/trigger.rb')
-rw-r--r-- | app/models/ci/trigger.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/app/models/ci/trigger.rb b/app/models/ci/trigger.rb index 1092b9c9564..1b2a7dc3fe4 100644 --- a/app/models/ci/trigger.rb +++ b/app/models/ci/trigger.rb @@ -21,8 +21,18 @@ module Ci validates :token, presence: true, uniqueness: true validates :owner, presence: true + attr_encrypted :encrypted_token_tmp, + attribute: :encrypted_token, + mode: :per_attribute_iv, + algorithm: 'aes-256-gcm', + key: Settings.attr_encrypted_db_key_base_32, + encode: false, + encode_vi: false + before_validation :set_default_values + before_save :copy_token_to_encrypted_token + def set_default_values self.token = "#{TRIGGER_TOKEN_PREFIX}#{SecureRandom.hex(20)}" if self.token.blank? end @@ -42,6 +52,12 @@ module Ci def can_access_project? Ability.allowed?(self.owner, :create_build, project) end + + private + + def copy_token_to_encrypted_token + self.encrypted_token_tmp = token + end end end |