Sha256: ce48b6ec9af6cec71ba7a0b6af81d33b61283d4c46b8f5c5917e35e53b61a3bd

Contents?: true

Size: 937 Bytes

Versions: 3

Compression:

Stored size: 937 Bytes

Contents

module Bugsnag::Middleware
  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

3 entries across 3 versions & 1 rubygems

Version Path
bugsnag-6.1.0 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.0.1 lib/bugsnag/middleware/clearance_user.rb
bugsnag-6.0.0 lib/bugsnag/middleware/clearance_user.rb