class Airbrake::Rack::User

def self.extract(rack_env)

Returns:
  • (Airbrake::Rack::User, nil) -

Parameters:
  • rack_env (Hash{String=>Object}) -- The Rack environment
def self.extract(rack_env)
  # Warden support (including Devise).
  if (warden = rack_env['warden'])
    user = warden.user(run_callbacks: false)
    # Early return to prevent unwanted possible authentication via
    # calling the `current_user` method later.
    # See: https://github.com/airbrake/airbrake/issues/641
    return user ? new(user) : nil
  end
  # Fallback mode (OmniAuth support included). Works only for Rails.
  user = try_current_user(rack_env)
  new(user) if user
end