module JumpIn::Authentication::Persistence::Session

Public Class Methods

included(klass) click to toggle source
# File lib/jump_in/authentication/session.rb, line 7
def self.included(klass)
  klass.jumpin_callback :on_login,         :set_user_session
  klass.jumpin_callback :on_logout,        :remove_user_session
  klass.jumpin_callback :get_current_user, :current_user_from_session

  APP_MAIN_CONTROLLER.class_eval do
    def current_user_from_session
      return nil unless session[:jump_in_id] && session[:jump_in_class]
      klass = session[:jump_in_class].constantize
      klass.find_by(id: session[:jump_in_id])
    end
  end
end

Public Instance Methods

current_user_from_session() click to toggle source
# File lib/jump_in/authentication/session.rb, line 13
def current_user_from_session
  return nil unless session[:jump_in_id] && session[:jump_in_class]
  klass = session[:jump_in_class].constantize
  klass.find_by(id: session[:jump_in_id])
end
remove_user_session() click to toggle source
# File lib/jump_in/authentication/session.rb, line 27
def remove_user_session
  session.delete :jump_in_class
  session.delete :jump_in_id
end
set_user_session(user:) click to toggle source
# File lib/jump_in/authentication/session.rb, line 21
def set_user_session(user:)
  return nil if JumpIn.conf.permanent
  session[:jump_in_class] = user.class.to_s
  session[:jump_in_id]    = user.id
end