module Devise::Models::Invalidatable

Public Instance Methods

activate_session(options = {}) click to toggle source
# File lib/devise_invalidatable/model.rb, line 14
def activate_session(options = {})
  new_session = user_sessions.new
  new_session.session_id = SecureRandom.hex(127)
  new_session.ip = options[:ip] if options[:ip]
  new_session.user_agent = options[:user_agent] if options[:user_agent]
  new_session.save
  purge_old_sessions
  new_session.session_id
end
exclusive_session(session_id) click to toggle source
# File lib/devise_invalidatable/model.rb, line 24
def exclusive_session(session_id)
  user_sessions.where('session_id != ?', session_id).delete_all
end
purge_old_sessions() click to toggle source
# File lib/devise_invalidatable/model.rb, line 32
def purge_old_sessions
  user_sessions.order('created_at desc').offset(10).destroy_all
end
session_active?(session_id) click to toggle source
# File lib/devise_invalidatable/model.rb, line 28
def session_active?(session_id)
  user_sessions.where(session_id: session_id).exists?
end