FIX: Suggest current username for staged users (#13706)

If user had a staged account and logged in using a third party service
a different username was suggested. This change will try to use the
username given by the authentication provider first, then the current
staged username and last suggest a new one.
This commit is contained in:
Dan Ungureanu
2021-07-13 02:15:06 +03:00
committed by GitHub
parent ee539632ad
commit 49090c3524
2 changed files with 33 additions and 1 deletions

View File

@@ -137,9 +137,18 @@ class Auth::Result
return result
end
suggested_username = UserNameSuggester.suggest(username_suggester_attributes)
if email_valid && email.present?
if username.present? && User.username_available?(username, email)
suggested_username = username
elsif staged_user = User.where(staged: true).find_by_email(email)
suggested_username = staged_user.username
end
end
result = {
email: email,
username: UserNameSuggester.suggest(username_suggester_attributes),
username: suggested_username,
auth_provider: authenticator_name,
email_valid: !!email_valid,
can_edit_username: can_edit_username,