24 lines
612 B
Ruby
24 lines
612 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
# rubocop: todo Gitlab/NamespacedClass
|
||
|
class TokenWithIv < ApplicationRecord
|
||
|
validates :hashed_token, presence: true
|
||
|
validates :iv, presence: true
|
||
|
validates :hashed_plaintext_token, presence: true
|
||
|
|
||
|
def self.find_by_hashed_token(value)
|
||
|
find_by(hashed_token: ::Digest::SHA256.digest(value))
|
||
|
end
|
||
|
|
||
|
def self.find_by_plaintext_token(value)
|
||
|
find_by(hashed_plaintext_token: ::Digest::SHA256.digest(value))
|
||
|
end
|
||
|
|
||
|
def self.find_nonce_by_hashed_token(value)
|
||
|
return unless table_exists?
|
||
|
|
||
|
token_record = find_by_hashed_token(value)
|
||
|
token_record&.iv
|
||
|
end
|
||
|
end
|