Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/ci/trigger.rb')
-rw-r--r--app/models/ci/trigger.rb16
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