mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 19:32:43 +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
|
# If there's existing user info with the given GitHub ID, that's all we
|
||||||
# need to know.
|
# need to know.
|
||||||
user = user_info.user
|
user = user_info.user
|
||||||
result.email = data[:email],
|
result.email = data[:email]
|
||||||
result.email_valid = data[:email].present?
|
result.email_valid = data[:email].present?
|
||||||
else
|
else
|
||||||
# Potentially use *any* of the emails from GitHub to find a match or
|
# 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) }
|
let(:user) { Fabricate(:user) }
|
||||||
|
|
||||||
context 'after_authenticate' do
|
context 'after_authenticate' do
|
||||||
|
let(:data) do
|
||||||
it 'can authenticate and create a user record for already existing users' do
|
{
|
||||||
hash = {
|
|
||||||
extra: {
|
extra: {
|
||||||
all_emails: [{
|
all_emails: [{
|
||||||
email: user.email,
|
email: user.email,
|
||||||
@ -41,14 +40,22 @@ describe Auth::GithubAuthenticator do
|
|||||||
},
|
},
|
||||||
uid: "100"
|
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.user.id).to eq(user.id)
|
||||||
expect(result.username).to eq(user.username)
|
expect(result.username).to eq(user.username)
|
||||||
expect(result.name).to eq(user.name)
|
expect(result.name).to eq(user.name)
|
||||||
expect(result.email).to eq(user.email)
|
expect(result.email).to eq(user.email)
|
||||||
expect(result.email_valid).to eq(true)
|
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
|
end
|
||||||
|
|
||||||
it 'should use primary email for new user creation over other available emails' do
|
it 'should use primary email for new user creation over other available emails' do
|
||||||
|
Reference in New Issue
Block a user