Class: RailsBase::Mfa::Strategy::Base

Inherits:
ServiceBase show all
Defined in:
app/services/rails_base/mfa/strategy/base.rb

Direct Known Subclasses

EveryRequest, SkipEveryRequest, TimeBased

Instance Method Summary collapse

Methods inherited from ServiceBase

inherited, #internal_validate, #service_base_logging

Methods included from ServiceLogging

#aletered_message, #class_name, #log, #log_prefix, #logger, #service_id

Instance Method Details

#callObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/services/rails_base/mfa/strategy/base.rb', line 10

def call
  log(level: :info, msg: "#{user_prepend} : MFA strategy against #{mfa_type}")

  if require_mfa?(user: user, mfa_type: mfa_type, mfa_last_used: mfa_last_used)
    mfa_required
  else
    if force
      log(level: :info, msg: "#{user_prepend} : MFA strategy was not required at this time. However -- Force option was passed in")
      mfa_required
    else
      mfa_not_required
    end
  end
end

#mfa_not_requiredObject



30
31
32
33
# File 'app/services/rails_base/mfa/strategy/base.rb', line 30

def mfa_not_required
  log(level: :info, msg: "#{user_prepend} : MFA strategy is NOT required at this time")
  context.request_mfa = false
end

#mfa_requiredObject



25
26
27
28
# File 'app/services/rails_base/mfa/strategy/base.rb', line 25

def mfa_required
  log(level: :info, msg: "#{user_prepend} : MFA strategy is required at this time based on the strategy")
  context.request_mfa = true
end

#user_prependObject



35
36
37
# File 'app/services/rails_base/mfa/strategy/base.rb', line 35

def user_prepend
  "[#{user.full_name} (#{user.id})]"
end

#validate!Object



39
40
41
42
# File 'app/services/rails_base/mfa/strategy/base.rb', line 39

def validate!
  raise "Expected user to be a User. Received #{user.class}" unless User === user
  raise "Expected mfa_type to be a present" if mfa_type.nil?
end