Sha256: 562085cdcde3406157642c7d7fd6808b8e0c9edcbaa36ad196d1077a72cdae9f

Contents?: true

Size: 1005 Bytes

Versions: 50

Compression:

Stored size: 1005 Bytes

Contents

module Effective
  module ImpersonationController
    module Destroy

      def destroy
        # Edge case where the current_user is blank. Weird session data.
        if current_user.blank?
          # Reset impersonation
          session[:impersonation_user_id] = nil
          session[:impersonation_original_path] = nil

          redirect_to(root_path) and return
        end

        # The current_user exists
        @user = current_user.class.find(session[:impersonation_user_id])
        redirect_path = after_destroy_impersonate_path_for(@user)

        # Reset impersonation
        session[:impersonation_user_id] = nil
        session[:impersonation_original_path] = nil

        expire_data_after_sign_in!
        warden.session_serializer.store(@user, Devise::Mapping.find_scope!(@user))

        redirect_to(redirect_path)
      end

      def after_destroy_impersonate_path_for(user)
        session[:impersonation_original_path].presence || '/admin/users'
      end

    end
  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
effective_resources-2.27.9 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.27.8 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.27.7 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.27.6 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.27.5 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.27.4 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.27.3 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.27.2 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.27.1 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.27.0 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.26.5 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.26.4 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.26.3 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.26.2 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.26.1 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.26.0 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.25.16 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.25.15 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.25.14 app/controllers/concerns/effective/impersonation_controller/destroy.rb
effective_resources-2.25.13 app/controllers/concerns/effective/impersonation_controller/destroy.rb