main
 1# frozen_string_literal: true
 2
 3class Current < ActiveSupport::CurrentAttributes
 4  attribute :user, :token
 5  attribute :request
 6  attribute :user_session
 7  attribute :request_id, :user_agent, :ip_address
 8
 9  def user?
10    user.present?
11  end
12
13  def token=(token)
14    super
15    self.user = token&.subject
16  end
17
18  def access(request, session)
19    self.request = request
20    self.user_session = UserSession.authenticate(session[:user_session_key])
21    self.user = user_session&.user
22    user_session&.access(request)
23  end
24end