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 = 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) ⇒ 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 |