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