discourse/app/serializers/concerns/user_auth_tokens_mixin.rb

49 lines
1.0 KiB
Ruby

# frozen_string_literal: true
module UserAuthTokensMixin
extend ActiveSupport::Concern
included { attributes :id, :client_ip, :location, :browser, :device, :os, :icon, :created_at }
def client_ip
object.client_ip.to_s
end
def location
ipinfo = DiscourseIpInfo.get(client_ip, locale: I18n.locale)
ipinfo[:location].presence || I18n.t("staff_action_logs.unknown")
end
def browser
val = BrowserDetection.browser(object.user_agent)
I18n.t("user_auth_tokens.browser.#{val}")
end
def device
val = BrowserDetection.device(object.user_agent)
I18n.t("user_auth_tokens.device.#{val}")
end
def os
val = BrowserDetection.os(object.user_agent)
I18n.t("user_auth_tokens.os.#{val}")
end
def icon
case BrowserDetection.os(object.user_agent)
when :android
"fab-android"
when :chromeos
"fab-chrome"
when :macos, :ios
"fab-apple"
when :linux
"fab-linux"
when :windows
"fab-windows"
else
"question"
end
end
end