Sha256: 38110c275653cf66543c9b1407a26b1ae17d4475507c38e5ba184e39424c040e
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
module DeviseMultiFactor module Controllers module Helpers extend ActiveSupport::Concern included do before_action :handle_two_factor_authentication end private def two_factor_authenticate! Devise.mappings.keys.flatten.any? do |scope| if signed_in?(scope) and warden.session(scope)[DeviseMultiFactor::NEED_AUTHENTICATION] handle_failed_second_factor(scope) end end end def handle_two_factor_authentication unless devise_controller? two_factor_authenticate! end end def handle_failed_second_factor(scope) if request.format.html? session["#{scope}_return_to"] = request.original_fullpath if request.get? redirect_to two_factor_authentication_path_for(scope) elsif request.format.json? session["#{scope}_return_to"] = root_path(format: :html) render json: { redirect_to: two_factor_authentication_path_for(scope) }, status: :unauthorized else head :unauthorized end end def two_factor_authentication_path_for(resource_or_scope = nil) scope = Devise::Mapping.find_scope!(resource_or_scope) change_path = "#{scope}_two_factor_authentication_path" send(change_path) end end end end module Devise module Controllers module Helpers def is_fully_authenticated? !session["warden.user.user.session"].try(:[], DeviseMultiFactor::NEED_AUTHENTICATION) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
devise-multi-factor-3.2.5 | lib/devise_multi_factor/controllers/helpers.rb |