diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index 3341ff44f40..9f708bd0cf7 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -120,6 +120,7 @@ class Users::OmniauthCallbacksController < ApplicationController def user_found(user) if user.totp_enabled? @auth_result.omniauth_disallow_totp = true + @auth_result.email = user.email return end diff --git a/spec/requests/omniauth_callbacks_controller_spec.rb b/spec/requests/omniauth_callbacks_controller_spec.rb index f2860cc6940..5e0a18edd90 100644 --- a/spec/requests/omniauth_callbacks_controller_spec.rb +++ b/spec/requests/omniauth_callbacks_controller_spec.rb @@ -140,12 +140,18 @@ RSpec.describe Users::OmniauthCallbacksController do it 'should return the right response' do get "/auth/google_oauth2/callback.json" - expect(response).to be_success + expect(response.status).to eq(200) response_body = JSON.parse(response.body) expect(response_body["email"]).to eq(user.email) expect(response_body["omniauth_disallow_totp"]).to eq(true) + + user.update!(email: 'different@user.email') + get "/auth/google_oauth2/callback.json" + + expect(response.status).to eq(200) + expect(JSON.parse(response.body)["email"]).to eq(user.email) end end