29 lines
561 B
Ruby
29 lines
561 B
Ruby
class Current < ActiveSupport::CurrentAttributes
|
|
attribute :session, :user, :identity, :account
|
|
attribute :http_method, :request_id, :user_agent, :ip_address, :referrer
|
|
|
|
def session=(value)
|
|
super(value)
|
|
|
|
if value.present?
|
|
self.identity = session.identity
|
|
end
|
|
end
|
|
|
|
def identity=(identity)
|
|
super(identity)
|
|
|
|
if identity.present?
|
|
self.user = identity.users.find_by(account: account)
|
|
end
|
|
end
|
|
|
|
def with_account(value, &)
|
|
with(account: value, &)
|
|
end
|
|
|
|
def without_account(&)
|
|
with(account: nil, &)
|
|
end
|
|
end
|