mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 07:53:49 +08:00
FIX: Extra comma resulted in Github auth email result being an array.
https://meta.discourse.org/t/github-2fa-flow-broken/88674
This commit is contained in:
@ -41,7 +41,7 @@ class Auth::GithubAuthenticator < Auth::Authenticator
|
||||
# If there's existing user info with the given GitHub ID, that's all we
|
||||
# need to know.
|
||||
user = user_info.user
|
||||
result.email = data[:email],
|
||||
result.email = data[:email]
|
||||
result.email_valid = data[:email].present?
|
||||
else
|
||||
# Potentially use *any* of the emails from GitHub to find a match or
|
||||
|
@ -24,9 +24,8 @@ describe Auth::GithubAuthenticator do
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
||||
context 'after_authenticate' do
|
||||
|
||||
it 'can authenticate and create a user record for already existing users' do
|
||||
hash = {
|
||||
let(:data) do
|
||||
{
|
||||
extra: {
|
||||
all_emails: [{
|
||||
email: user.email,
|
||||
@ -41,14 +40,22 @@ describe Auth::GithubAuthenticator do
|
||||
},
|
||||
uid: "100"
|
||||
}
|
||||
end
|
||||
|
||||
result = authenticator.after_authenticate(hash)
|
||||
it 'can authenticate and create a user record for already existing users' do
|
||||
result = authenticator.after_authenticate(data)
|
||||
|
||||
expect(result.user.id).to eq(user.id)
|
||||
expect(result.username).to eq(user.username)
|
||||
expect(result.name).to eq(user.name)
|
||||
expect(result.email).to eq(user.email)
|
||||
expect(result.email_valid).to eq(true)
|
||||
|
||||
# Authenticates again when user has Github user info
|
||||
result = authenticator.after_authenticate(data)
|
||||
|
||||
expect(result.email).to eq(user.email)
|
||||
expect(result.email_valid).to eq(true)
|
||||
end
|
||||
|
||||
it 'should use primary email for new user creation over other available emails' do
|
||||
|
Reference in New Issue
Block a user