Class: RailsBase::Mfa::Strategy::TimeBased
- Inherits:
-
Base
- Object
- ServiceBase
- Base
- RailsBase::Mfa::Strategy::TimeBased
- Defined in:
- app/services/rails_base/mfa/strategy/time_based.rb
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from Base
#call, #mfa_not_required, #mfa_required, #user_prepend, #validate!
Methods inherited from ServiceBase
inherited, #internal_validate, #service_base_logging, #validate!
Methods included from ServiceLogging
#aletered_message, #class_name, #log, #log_prefix, #logger, #service_id
Class Method Details
.description ⇒ Object
5 6 7 |
# File 'app/services/rails_base/mfa/strategy/time_based.rb', line 5 def self.description "MFA is required every #{RailsBase.config.mfa.reauth_duration}" end |
Instance Method Details
#require_mfa?(mfa_last_used:) ⇒ Boolean
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'app/services/rails_base/mfa/strategy/time_based.rb', line 9 def require_mfa?(mfa_last_used:, **) if mfa_last_used.nil? log(level: :info, msg: "#{user_prepend} : User has not succesfully logged into mfa") return true end log(level: :info, msg: "#{user_prepend} : User last used mfa #{mfa_last_used.utc} (vs #{Time.now.utc})") required_line = mfa_last_used.utc + RailsBase.config.mfa.reauth_duration log(level: :info, msg: "#{user_prepend} : User required to reauth after #{required_line}") status = required_line < Time.now.utc log(level: :info, msg: "#{user_prepend} : User required to reauth? #{status}") status end |