18F/identity-idp

View on GitHub
app/models/auth_app_configuration.rb

Summary

Maintainability
A
0 mins
Test Coverage
B
88%
# frozen_string_literal: true

class AuthAppConfiguration < ApplicationRecord
  include EncryptableAttribute

  encrypted_attribute(name: :otp_secret_key)

  belongs_to :user

  validates :name, presence: true

  def mfa_enabled?
    otp_secret_key.present?
  end

  def selection_presenters
    if mfa_enabled?
      [TwoFactorAuthentication::SignInAuthAppSelectionPresenter.new(user:, configuration: self)]
    else
      []
    end
  end

  def friendly_name
    :auth_app
  end

  def self.selection_presenters(set)
    if set.any?
      set.first.selection_presenters
    else
      []
    end
  end
end