session_tracking_concern.rb 437 B

12345678910111213141516171819202122
  1. # frozen_string_literal: true
  2. module SessionTrackingConcern
  3. extend ActiveSupport::Concern
  4. SESSION_UPDATE_FREQUENCY = 24.hours.freeze
  5. included do
  6. before_action :set_session_activity
  7. end
  8. private
  9. def set_session_activity
  10. return unless session_needs_update?
  11. current_session.touch
  12. end
  13. def session_needs_update?
  14. !current_session.nil? && current_session.updated_at < SESSION_UPDATE_FREQUENCY.ago
  15. end
  16. end