Sha256: 27fe281b7fb79546343ecbe99a053a40da2ee36db58b4c92c238e9a1f64572f4
Contents?: true
Size: 1.63 KB
Versions: 21
Compression:
Stored size: 1.63 KB
Contents
# frozen_string_literal: true require_relative '../tracking' require_relative '../resource' require_relative '../event' module Datadog module AppSec module Contrib module Devise module Patcher # Hook in devise registration controller module RegistrationControllerPatch def create return super unless AppSec.enabled? track_user_events_configuration = Datadog.configuration.appsec.track_user_events return super unless track_user_events_configuration.enabled automated_track_user_events_mode = track_user_events_configuration.mode appsec_scope = Datadog::AppSec.active_scope return super unless appsec_scope super do |resource| if resource.persisted? devise_resource = Resource.new(resource) event_information = Event.new(devise_resource, automated_track_user_events_mode) if event_information.user_id Datadog.logger.debug { 'User Signup Event' } else Datadog.logger.warn { 'User Signup Event, but can\'t extract user ID. Tracking empty event' } end Tracking.track_signup( appsec_scope.trace, appsec_scope.service_entry_span, user_id: event_information.user_id, **event_information.to_h ) end yield resource if block_given? end end end end end end end end
Version data entries
21 entries across 21 versions & 2 rubygems