Sha256: 4af680b2c7fef2ff246ac0fd96338d4a01bd879db7b2e85e60b18c89fdcd9234

Contents?: true

Size: 990 Bytes

Versions: 37

Compression:

Stored size: 990 Bytes

Contents

module Bugsnag::Middleware
  ##
  # Extracts and appends clearance user information
  class ClearanceUser
    COMMON_USER_FIELDS = [:email, :name, :first_name, :last_name, :created_at, :id]

    def initialize(bugsnag)
      @bugsnag = bugsnag
    end

    def call(report)
      if report.request_data[:rack_env] &&
        report.request_data[:rack_env][:clearance] &&
        report.request_data[:rack_env][:clearance].signed_in? &&
        report.request_data[:rack_env][:clearance].current_user

        # Extract useful user information
        user = {}
        user_object = report.request_data[:rack_env][:clearance].current_user
        if user_object
          # Build the bugsnag user info from the current user record
          COMMON_USER_FIELDS.each do |field|
            user[field] = user_object.send(field) if user_object.respond_to?(field)
          end
        end

        report.user = user unless user.empty?
      end

      @bugsnag.call(report)
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
bugsnag-6.27.1 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.26.4 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.26.3 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.26.2 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.26.1 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.26.0 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.25.2 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.25.1 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.25.0 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.24.2 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.24.1 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.24.0 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.23.0 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.22.1 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.21.0 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.20.0 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.19.0 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.18.0 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.17.0 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.16.0 lib/bugsnag/middleware/clearance_user.rb