diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index 0d7650e7fea..133bc0ca97f 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -87,6 +87,7 @@ def check_user_needs_redirect if user_fully_authenticated? redirect_to signed_in_url elsif current_user + analytics.partial_authentication_log_out sign_out end end diff --git a/app/services/analytics_events.rb b/app/services/analytics_events.rb index cb522455b77..8d688615031 100644 --- a/app/services/analytics_events.rb +++ b/app/services/analytics_events.rb @@ -2949,6 +2949,13 @@ def otp_phone_validation_failed(error:, context:, country:, **extra) ) end + def partial_authentication_log_out(**extra) + track_event( + 'Partially authenticated user logged out', + **extra, + ) + end + # @param [Boolean] success # @param [Hash] errors # The user updated their password diff --git a/spec/controllers/users/sessions_controller_spec.rb b/spec/controllers/users/sessions_controller_spec.rb index b2e986c0daf..8d826fd88fe 100644 --- a/spec/controllers/users/sessions_controller_spec.rb +++ b/spec/controllers/users/sessions_controller_spec.rb @@ -6,6 +6,13 @@ describe 'GET /users/sign_in' do it 'clears the session when user is not yet 2fa-ed' do + stub_analytics + expect(@analytics).to receive(:track_event).with( + 'Sign in page visited', + flash: nil, + stored_location: nil, + ) + expect(@analytics).to receive(:track_event).with('Partially authenticated user logged out') sign_in_before_2fa get :new