@@ -10,6 +10,7 @@ module Events
10
10
LOGIN_SUCCESS_EVENT = 'users.login.success'
11
11
LOGIN_FAILURE_EVENT = 'users.login.failure'
12
12
SIGNUP_EVENT = 'users.signup'
13
+ USER_LOGIN_KEYS = [ 'usr.login' , :'usr.login' ] . freeze
13
14
14
15
class << self
15
16
# Attach login success event information to the trace
@@ -30,10 +31,11 @@ def track_login_success(trace = nil, span = nil, user:, **others)
30
31
set_trace_and_span_context ( 'track_login_success' , trace , span ) do |active_trace , active_span |
31
32
user_options = user . dup
32
33
user_id = user_options . delete ( :id )
33
- user_login = user_options [ :login ] || others [ :'usr.login' ] || user_id
34
+ user_login = user_options [ :login ] || others [ :'usr.login' ] || others [ 'usr.login' ] || user_id
34
35
35
36
raise ArgumentError , 'missing required key: :user => { :id }' if user_id . nil?
36
37
38
+ others = others . reject { |key , _ | USER_LOGIN_KEYS . include? ( key ) }
37
39
others [ :'usr.login' ] = user_login
38
40
track ( LOGIN_SUCCESS_EVENT , active_trace , active_span , **others )
39
41
@@ -58,7 +60,7 @@ def track_login_success(trace = nil, span = nil, user:, **others)
58
60
# event information to attach to the trace.
59
61
def track_login_failure ( trace = nil , span = nil , user_exists :, user_id : nil , **others )
60
62
set_trace_and_span_context ( 'track_login_failure' , trace , span ) do |active_trace , active_span |
61
- others [ :'usr.login' ] = user_id if user_id && !others . key? ( :'usr.login' )
63
+ others [ :'usr.login' ] = user_id if user_id && !others . key? ( :'usr.login' ) && ! others . key? ( 'usr.login' )
62
64
track ( LOGIN_FAILURE_EVENT , active_trace , active_span , **others )
63
65
64
66
active_span . set_tag ( 'appsec.events.users.login.failure.usr.id' , user_id ) if user_id
@@ -84,10 +86,11 @@ def track_signup(trace = nil, span = nil, user:, **others)
84
86
set_trace_and_span_context ( 'track_signup' , trace , span ) do |active_trace , active_span |
85
87
user_options = user . dup
86
88
user_id = user_options . delete ( :id )
87
- user_login = user_options [ :login ] || others [ :'usr.login' ] || user_id
89
+ user_login = user_options [ :login ] || others [ :'usr.login' ] || others [ 'usr.login' ] || user_id
88
90
89
91
raise ArgumentError , 'missing required key: :user => { :id }' if user_id . nil?
90
92
93
+ others = others . reject { |key , _ | USER_LOGIN_KEYS . include? ( key ) }
91
94
others [ :'usr.login' ] = user_login
92
95
track ( SIGNUP_EVENT , active_trace , active_span , **others )
93
96
0 commit comments