module Sorcery::Controller::Submodules::ActivityLogging

This submodule keeps track of events such as login, logout, and last activity time, per user. It helps in estimating which users are active now in the site. This cannot be determined absolutely because a user might be reading a page without clicking anything for a while. This is the controller part of the submodule, which adds hooks to register user events, and methods to collect active users data for use in the app. see Socery::Model::Submodules::ActivityLogging for configuration options.

Attributes

register_last_activity_time[RW]
register_last_ip_address[RW]
register_login_time[RW]
register_logout_time[RW]

Public Class Methods

included(base) click to toggle source
# File lib/sorcery/controller/submodules/activity_logging.rb, line 15
def self.included(base)
  base.send(:include, InstanceMethods)
  Config.module_eval do
    class << self
      attr_accessor :register_login_time
      attr_accessor :register_logout_time
      attr_accessor :register_last_activity_time
      attr_accessor :register_last_ip_address

      def merge_activity_logging_defaults!
        @defaults.merge!(:@register_login_time         => true,
                         :@register_logout_time        => true,
                         :@register_last_activity_time => true,
                         :@register_last_ip_address    => true)
      end
    end
    merge_activity_logging_defaults!
  end

  Config.after_login << :register_login_time_to_db
  Config.after_login << :register_last_ip_address
  Config.before_logout << :register_logout_time_to_db

  base.after_action :register_last_activity_time_to_db
end
merge_activity_logging_defaults!() click to toggle source
# File lib/sorcery/controller/submodules/activity_logging.rb, line 24
def merge_activity_logging_defaults!
  @defaults.merge!(:@register_login_time         => true,
                   :@register_logout_time        => true,
                   :@register_last_activity_time => true,
                   :@register_last_ip_address    => true)
end