module Devise::Models::Stalkable
Public Instance Methods
mark_last_seen!(login_record_id)
click to toggle source
Marks the time when the user was last seen in the system on a given login record ID.
@param [Fixnum, String] login_record_id ID of login record.
# File lib/devise/models/stalkable.rb, line 22 def mark_last_seen!(login_record_id) login_record = login_class.find(login_record_id) login_record.update_column :last_seen_at, Time.now end
mark_login!(request)
click to toggle source
Creates a new login record based on information in provided request object. Marks the last seen time as well.
@param [ActionDispatch::Request] request HTTP request which was used to login @return [UserLogin]
# File lib/devise/models/stalkable.rb, line 14 def mark_login!(request) login_class.create(attrs_for_login(request)) end
mark_logout!(login_record_id)
click to toggle source
Marks the time when user has logged out on given login record ID. Marks the last seen time as well.
@param [Fixnum, String] login_record_id ID of login record.
# File lib/devise/models/stalkable.rb, line 31 def mark_logout!(login_record_id) login_record = login_class.find(login_record_id) t = Time.now login_record.update_column :last_seen_at, t login_record.update_column :signed_out_at, t end
Protected Instance Methods
attrs_for_login(request)
click to toggle source
# File lib/devise/models/stalkable.rb, line 40 def attrs_for_login(request) t = Time.now { user_id: id, ip_address: request.remote_ip, user_agent: request.user_agent, signed_in_at: t, last_seen_at: t } end
login_class()
click to toggle source
# File lib/devise/models/stalkable.rb, line 48 def login_class "#{self.class.name}Login".safe_constantize end