Class: RailsBase::Mfa::EvaluationController

Inherits:
RailsBaseApplicationController show all
Defined in:
app/controllers/rails_base/mfa/evaluation_controller.rb

Constant Summary collapse

OTP_TEMPLATE =
"rails_base/mfa/validate/totp/totp_event_input"
SMS_TEMPLATE =
"rails_base/mfa/validate/sms/sms_event_input"

Constants included from CaptureReferenceHelper

CaptureReferenceHelper::CAPTURE_ACTION_NAME, CaptureReferenceHelper::CAPTURE_CONTROLLER_PATH, CaptureReferenceHelper::CAPTURE_REFERRED_PATH

Constants included from AppearanceHelper

AppearanceHelper::APPEARANCE_MODE_ACTUAL_COOKIE, AppearanceHelper::APPEARANCE_MODE_COOKIE, AppearanceHelper::APPEARANCE_TEXT_CLASS, AppearanceHelper::VIEWPORT_EXTRA_LARGE, AppearanceHelper::VIEWPORT_EXTRA_SMALL, AppearanceHelper::VIEWPORT_LARGE, AppearanceHelper::VIEWPORT_MEDIUM, AppearanceHelper::VIEWPORT_MOBILE_MAX, AppearanceHelper::VIEWPORT_SIZES, AppearanceHelper::VIEWPORT_SMALL

Constants included from ApplicationHelper

ApplicationHelper::TIMEZONE_OFFSET_COOKIE, ApplicationHelper::TIMEZONE_SESSION_NAME

Instance Method Summary collapse

Methods inherited from RailsBaseApplicationController

#admin_impersonation_session?, #admin_reset_impersonation_session!, #admin_user?, #capture_admin_action, #is_timeout_error?, #populate_admin_actions, #set_time_zone

Methods included from CaptureReferenceHelper

#authenticate_user!, #capture_and_clear_reference_redirect!, #capture_clear_reference_from_sesssion!, #capture_reference, #redirect_from_reference, #reference_redirect, #skip_capture_reference!, #skip_capture_reference?, #use_capture_reference?

Methods included from AppearanceHelper

#appearance_mode_drop_down, #appearance_text_class, #footer_mode_case, #force_sticky_mode!

Methods included from ApplicationHelper

#admin_reset_session!, #browser, #is_mobile?, #is_safari?, #mfa_fallback?

Instance Method Details

#mfa_with_eventObject

GET mfa/:event



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/controllers/rails_base/mfa/evaluation_controller.rb', line 11

def mfa_with_event
  user = User.find(@__rails_base_mfa_event.user_id)
  decision = RailsBase::Mfa::Decision.(user: user)
  mfa_type = mfa_decision(provided: params[:type], default: decision.mfa_type, allowed: decision.mfa_options)

  if @__rails_base_mfa_event.phone_number
    phone_number = @__rails_base_mfa_event.phone_number
  else
    phone_number = User.find(@__rails_base_mfa_event.user_id).phone_number
  end

  @masked_phone = User.masked_number(phone_number)
  @mfa_options = decision.mfa_options.map do |type|
    next if type == mfa_type

    {
      text: "Switch MFA to #{type}",
      ** RailsBase::Mfa.mfa_link(mfa_event: @__rails_base_mfa_event.event, mfa: type)
    }
  end.compact

  case mfa_type
  when RailsBase::Mfa::OTP
    render OTP_TEMPLATE
  when RailsBase::Mfa::SMS
    render SMS_TEMPLATE
  end
end