Fix and re-enable user activity update

This commit is contained in:
Fosco Marotto 2021-01-30 01:49:22 -05:00
parent 8b701c11e3
commit 3196dfbda9
2 changed files with 20 additions and 4 deletions

View File

@ -12,12 +12,10 @@ module UserTrackingConcern
private
def set_user_activity
return unless user_needs_sign_in_update?
current_user.update_tracked_fields!(request)
current_user.update_sign_in!(request) if user_needs_sign_in_update?
end
def user_needs_sign_in_update?
# user_signed_in? && (current_user.current_sign_in_at.nil? || current_user.current_sign_in_at < UPDATE_SIGN_IN_HOURS.hours.ago)
false
user_signed_in? && (current_user.current_sign_in_at.nil? || current_user.current_sign_in_at < UPDATE_SIGN_IN_HOURS.hours.ago)
end
end

View File

@ -159,6 +159,24 @@ class User < ApplicationRecord
prepare_returning_user!
end
def update_sign_in!(request, new_sign_in: false)
old_current, new_current = current_sign_in_at, Time.now.utc
self.last_sign_in_at = old_current || new_current
self.current_sign_in_at = new_current
old_current, new_current = current_sign_in_ip, request.remote_ip
self.last_sign_in_ip = old_current || new_current
self.current_sign_in_ip = new_current
if new_sign_in
self.sign_in_count ||= 0
self.sign_in_count += 1
end
save(validate: false) unless new_record?
prepare_returning_user!
end
def disable_two_factor!
self.otp_required_for_login = false
otp_backup_codes&.clear