Add BrowserDetection model concern (#29513)

This commit is contained in:
Matt Jankowski authored and GitHub committed 2024-03-19 15:39:14 +00:00
1 parent d7ab5655ef
commit 62e266fbd6
3 files changed
+31 -29

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
# frozen_string_literal: true
module BrowserDetection
extend ActiveSupport::Concern
included do
before_save :assign_user_agent
end
def detection
@detection ||= Browser.new(user_agent)
end
def browser
detection.id
end
def platform
detection.platform.id
end
private
def assign_user_agent
self.user_agent ||= ''
end
end
+2 -12
View File
@@ -16,21 +16,11 @@
#
class LoginActivity < ApplicationRecord
include BrowserDetection
enum :authentication_method, { password: 'password', otp: 'otp', webauthn: 'webauthn', sign_in_token: 'sign_in_token', omniauth: 'omniauth' }
belongs_to :user
validates :authentication_method, inclusion: { in: authentication_methods.keys }
def detection
@detection ||= Browser.new(user_agent)
end
def browser
detection.id
end
def platform
detection.platform.id
end
end
+2 -17
View File
@@ -16,6 +16,8 @@
#
class SessionActivation < ApplicationRecord
include BrowserDetection
belongs_to :user, inverse_of: :session_activations
belongs_to :access_token, class_name: 'Doorkeeper::AccessToken', dependent: :destroy, optional: true
belongs_to :web_push_subscription, class_name: 'Web::PushSubscription', dependent: :destroy, optional: true
@@ -24,19 +26,6 @@ class SessionActivation < ApplicationRecord
to: :access_token,
allow_nil: true
def detection
@detection ||= Browser.new(user_agent)
end
def browser
detection.id
end
def platform
detection.platform.id
end
before_save :assign_user_agent
before_create :assign_access_token
class << self
@@ -67,10 +56,6 @@ class SessionActivation < ApplicationRecord
private
def assign_user_agent
self.user_agent = '' if user_agent.nil?
end
def assign_access_token
self.access_token = Doorkeeper::AccessToken.create!(access_token_attributes)
end