diff --git a/app/controllers/maintenance/user/email_changes_controller.rb b/app/controllers/maintenance/user/email_changes_controller.rb index 161f4bd10..1199c1e16 100644 --- a/app/controllers/maintenance/user/email_changes_controller.rb +++ b/app/controllers/maintenance/user/email_changes_controller.rb @@ -6,11 +6,12 @@ module Maintenance def create email_change = UserEmailChange.new(CurrentUser.user, params[:email_change][:email], params[:email_change][:password]) - if email_change.process - redirect_to(edit_user_path(CurrentUser.user.id), :notice => "Email was updated") + email_change.process + if CurrentUser.user.errors.any? + flash[:notice] = CurrentUser.user.errors.full_messages.join("; ") + redirect_to(new_maintenance_user_email_change_path) else - flash[:notice] = "Password was incorrect" - render :action => "new" + redirect_to(edit_user_path(CurrentUser.user.id), :notice => "Email was updated") end end end diff --git a/app/logical/user_email_change.rb b/app/logical/user_email_change.rb index 432ad2b37..d9a694e0b 100644 --- a/app/logical/user_email_change.rb +++ b/app/logical/user_email_change.rb @@ -9,7 +9,7 @@ class UserEmailChange def process if User.authenticate(user.name, password).nil? - false + user.errors[:base] << "Password was incorrect" else user.email = new_email user.save diff --git a/app/views/users/edit.html.erb b/app/views/users/edit.html.erb index 41e8ea4c4..b4898e953 100644 --- a/app/views/users/edit.html.erb +++ b/app/views/users/edit.html.erb @@ -3,7 +3,7 @@