Module: Authenticate::Model::Trackable

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

Overview

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

Methods

  • update_tracked_fields - update the user’s tracked fields based on the request.

  • update_tracked_fields! - update tracked fields and save immediately, bypassing validations

Columns

  • sign_in_count - increase every time a sign in is successful

  • current_sign_in_at - a timestamp updated at each sign in

  • last_sign_in_at - a timestamp of the previous sign in

  • current_sign_in_ip - the remote ip address of the user at sign in

  • previous_sign_in_ip - the remote ip address of the previous sign in

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.required_fields(_klass) ⇒ Object



22
23
24
# 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

Instance Method Details

#update_tracked_fields(request) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/authenticate/model/trackable.rb', line 26

def update_tracked_fields(request)
  old_current = 
  new_current = Time.now.utc
  self.     = old_current || new_current
  self.  = new_current

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

  self. ||= 0
  self. += 1
end

#update_tracked_fields!(request) ⇒ Object



41
42
43
44
# File 'lib/authenticate/model/trackable.rb', line 41

def update_tracked_fields!(request)
  update_tracked_fields(request)
  save(validate: false)
end