Module: Devise::Models::Invalidatable

Extended by:
ActiveSupport::Concern
Defined in:
lib/devise_invalidatable/model.rb

Instance Method Summary collapse

Instance Method Details

#activate_session(options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
# 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) ⇒ Object



24
25
26
# 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_sessionsObject



32
33
34
# 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) ⇒ Boolean



28
29
30
# File 'lib/devise_invalidatable/model.rb', line 28

def session_active?(session_id)
  user_sessions.where(session_id: session_id).exists?
end