Class: RailsBase::Mfa::Validate::SmsController
- Inherits:
-
RailsBaseApplicationController
- Object
- ActionController::Base
- RailsBaseApplicationController
- RailsBase::Mfa::Validate::SmsController
- Defined in:
- app/controllers/rails_base/mfa/validate/sms_controller.rb
Constant Summary
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
-
#sms_event ⇒ Object
POST mfa/validate/sms/:mfa_event.
-
#sms_event_input ⇒ Object
GET mfa/validate/sms/:mfa_event.
-
#sms_event_send ⇒ Object
POST mfa/validate/sms/:mfa_event/send.
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
#sms_event ⇒ Object
POST mfa/validate/sms/:mfa_event
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'app/controllers/rails_base/mfa/validate/sms_controller.rb', line 61 def sms_event mfa_validity = RailsBase::Mfa::Sms::Validate.call(mfa_event: @__rails_base_mfa_event, params: params, session_mfa_user_id: @__rails_base_mfa_event.user_id) if mfa_validity.failure? redirect_to(mfa_validity.redirect_url, alert: mfa_validity.) return end mfa_validity.user.set_last_mfa_sms_login! if @__rails_base_mfa_event.sign_in_user logger.info("Logging User in") sign_in(mfa_validity.user) end if @__rails_base_mfa_event.set_satiated_on_success logger.info("Satiating MFA Event") @__rails_base_mfa_event.satiated! end add_mfa_event_to_session(event: @__rails_base_mfa_event) redirect_to @__rails_base_mfa_event.redirect, notice: @__rails_base_mfa_event.flash_notice end |
#sms_event_input ⇒ Object
GET mfa/validate/sms/:mfa_event
50 51 52 53 54 55 56 57 58 |
# File 'app/controllers/rails_base/mfa/validate/sms_controller.rb', line 50 def sms_event_input 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) end |
#sms_event_send ⇒ Object
POST mfa/validate/sms/:mfa_event/send
8 9 10 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 39 40 41 42 43 44 45 46 47 |
# File 'app/controllers/rails_base/mfa/validate/sms_controller.rb', line 8 def sms_event_send if soft_mfa_with_event user = User.find(@__rails_base_mfa_event.user_id) else if request.format.json? render json: { message: @__rails_base_mfa_event_invalid_reason }, status: 400 else flash[:alert] = @__rails_base_mfa_event_invalid_reason redirect = @__rails_base_mfa_event&.invalid_redirect || RailsBase.url_routes.new_user_session_path redirect_to redirect, email: params.dig(:user,:email) end return end if request.format.json? # When json, this will always come from an authenticated user # otherwise kick them out now! return unless authenticate_user! user = current_user end result = RailsBase::Mfa::Sms::Send.call(expires_at: 5.minutes.from_now, phone_number: @__rails_base_mfa_event.phone_number, user: user) if result.success? flash[:notice] = msg = "SMS Code succesfully sent. Please check messages" status = 200 else flash[:alert] = msg = "Unable to complete Request. #{result.message}" status = 400 end if request.format.json? render json: { message: msg }, status: status flash.clear else redirect_to RailsBase.url_routes.mfa_with_event_path(mfa_event: @__rails_base_mfa_event.event, type: RailsBase::Mfa::SMS) end end |