Class: Airbrake::Rack::User
- Inherits:
-
Object
- Object
- Airbrake::Rack::User
- Defined in:
- lib/airbrake/rack/user.rb
Overview
Represents an authenticated user, which can be converted to Airbrake’s payload format. Supports Warden and Omniauth authentication frameworks.
Class Method Summary collapse
-
.extract(rack_env) ⇒ Airbrake::Rack::User?
Finds the user in the Rack environment and creates a new user wrapper.
Instance Method Summary collapse
- #as_json ⇒ Object
-
#initialize(user) ⇒ User
constructor
A new instance of User.
Constructor Details
#initialize(user) ⇒ User
Returns a new instance of User.
32 33 34 |
# File 'lib/airbrake/rack/user.rb', line 32 def initialize(user) @user = user end |
Class Method Details
.extract(rack_env) ⇒ Airbrake::Rack::User?
Finds the user in the Rack environment and creates a new user wrapper.
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/airbrake/rack/user.rb', line 11 def self.extract(rack_env) # Warden support (including Devise). if (warden = rack_env['warden']) if (user = warden.user(run_callbacks: false)) return new(user) if user end end # Fallback mode (OmniAuth support included). Works only for Rails. user = try_current_user(rack_env) new(user) if user end |
Instance Method Details
#as_json ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/airbrake/rack/user.rb', line 36 def as_json user = {} user[:id] = try_to_get(:id) user[:name] = full_name user[:username] = try_to_get(:username) user[:email] = try_to_get(:email) user = user.delete_if { |_key, val| val.nil? } user.empty? ? user : { user: user } end |