Module: Devise::Models::Invalidatable
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/devise_invalidatable/model.rb
Instance Method Summary collapse
- #activate_session(options = {}) ⇒ Object
- #exclusive_session(session_id) ⇒ Object
- #purge_old_sessions ⇒ Object
- #session_active?(session_id) ⇒ Boolean
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( = {}) new_session = user_sessions.new new_session.session_id = SecureRandom.hex(127) new_session.ip = [:ip] if [:ip] new_session.user_agent = [:user_agent] if [: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_sessions ⇒ Object
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 |