Improve flash message handling in users#new

Only show the duplicate email message if we actually have errors
logged against the email field, and then show it as a warning.

In all other cases we show the generic informational hint about
social logins and pre-existing accounts.
This commit is contained in:
Tom Hughes 2024-05-06 08:54:36 +01:00
parent 4965c19b7a
commit 1874e5b1a2

View file

@ -78,10 +78,11 @@ class UsersController < ApplicationController
:auth_provider => params[:auth_provider],
:auth_uid => params[:auth_uid])
flash.now[:notice] = render_to_string :partial => "auth_association"
# validate before displaying to show email field if it conflicts
flash.now[:notice] = t ".duplicate_social_email" unless current_user.valid? && current_user.errors[:email].empty?
if current_user.valid? || current_user.errors[:email].empty?
flash.now[:notice] = render_to_string :partial => "auth_association"
else
flash.now[:warning] = t ".duplicate_social_email"
end
else
check_signup_allowed