26 lines
775 B
Ruby
26 lines
775 B
Ruby
# frozen_string_literal: true
|
|
|
|
# A UserSession contains browser and IP metadata associated with a UserEvent. This
|
|
# includes the user's session ID from their session cookie, their IP address,
|
|
# and their browser user agent. This is used to track logins and other events.
|
|
|
|
class UserSession < ApplicationRecord
|
|
attribute :ip_addr, :ip_address
|
|
|
|
belongs_to :ip_geolocation, foreign_key: :ip_addr, primary_key: :ip_addr, optional: true
|
|
|
|
def self.visible(user)
|
|
if user.is_moderator?
|
|
all
|
|
else
|
|
none
|
|
end
|
|
end
|
|
|
|
def self.search(params, current_user)
|
|
q = search_attributes(params, [:id, :created_at, :updated_at, :session_id, :user_agent, :ip_addr, :ip_geolocation], current_user: current_user)
|
|
q = q.apply_default_order(params)
|
|
q
|
|
end
|
|
end
|