module Authenticate::Model::Trackable

Track information about your user sign ins. This module is always enabled.

Methods

Columns

Public Class Methods

required_fields(_klass) click to toggle source
# File lib/authenticate/model/trackable.rb, line 22
def self.required_fields(_klass)
  [:current_sign_in_at, :current_sign_in_ip, :last_sign_in_at, :last_sign_in_ip, :sign_in_count]
end

Public Instance Methods

update_tracked_fields(request) click to toggle source
# File lib/authenticate/model/trackable.rb, line 26
def update_tracked_fields(request)
  old_current = current_sign_in_at
  new_current = Time.now.utc
  self.last_sign_in_at     = old_current || new_current
  self.current_sign_in_at  = new_current

  old_current = current_sign_in_ip
  new_current = request.remote_ip
  self.last_sign_in_ip     = old_current || new_current
  self.current_sign_in_ip  = new_current

  self.sign_in_count ||= 0
  self.sign_in_count += 1
end
update_tracked_fields!(request) click to toggle source
# File lib/authenticate/model/trackable.rb, line 41
def update_tracked_fields!(request)
  update_tracked_fields(request)
  save(validate: false)
end