]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/concerns/user_methods.rb
Rewrite changeset download show test
[rails.git] / app / controllers / concerns / user_methods.rb
index eb7d389881eba94f5f8fad65dd197f94eaa9c92d..447aea3fce3013ac2734992c4c8648ad612ce339 100644 (file)
@@ -6,9 +6,10 @@ module UserMethods
   ##
   # ensure that there is a "user" instance variable
   def lookup_user
   ##
   # ensure that there is a "user" instance variable
   def lookup_user
-    @user = User.active.find_by!(:display_name => params[:display_name])
+    display_name = params[:display_name] || params[:user_display_name]
+    @user = User.active.find_by!(:display_name => display_name)
   rescue ActiveRecord::RecordNotFound
   rescue ActiveRecord::RecordNotFound
-    render_unknown_user params[:display_name]
+    render_unknown_user display_name
   end
 
   ##
   end
 
   ##
@@ -45,19 +46,22 @@ module UserMethods
       if user.new_email.blank? || user.new_email == user.email
         flash[:notice] = t "accounts.update.success"
       else
       if user.new_email.blank? || user.new_email == user.email
         flash[:notice] = t "accounts.update.success"
       else
+        token = user.generate_token_for(:new_email)
+
         user.email = user.new_email
 
         if user.valid?
           flash[:notice] = t "accounts.update.success_confirm_needed"
 
           begin
         user.email = user.new_email
 
         if user.valid?
           flash[:notice] = t "accounts.update.success_confirm_needed"
 
           begin
-            UserMailer.email_confirm(user, user.tokens.create).deliver_later
+            UserMailer.email_confirm(user, token).deliver_later
           rescue StandardError
             # Ignore errors sending email
           end
         else
           rescue StandardError
             # Ignore errors sending email
           end
         else
-          current_user.errors.add(:new_email, current_user.errors[:email])
-          current_user.errors.add(:email, [])
+          current_user.errors.delete(:email).each do |error|
+            current_user.errors.add(:new_email, error)
+          end
         end
 
         user.restore_email!
         end
 
         user.restore_email!