about summary refs log tree commit diff
path: root/app/models/user.rb
diff options
context:
space:
mode:
authorPatrick Figel <patrick@figel.email>2018-01-05 00:15:35 +0100
committerEugen Rochko <eugen@zeonfederated.com>2018-01-05 00:15:35 +0100
commit5ec25ff3e1c53a4feab1e9b9a3f1660cca538c23 (patch)
tree0ce4c7b587c6fe35d4f1fb27cfdf394b8dc4bec9 /app/models/user.rb
parent49e296e1b03ffe2b17fb390b6ad298172b25040f (diff)
Fix email confirmation link not updating email (#6187)
A change introduced in #6125 prevents
`Devise::Models::Confirmable#confirm` from being called for existing
users, which in turn leads to `email` not being set to
`unconfirmed_email`, breaking email updates. This also adds a test
that would've caught this issue.
Diffstat (limited to 'app/models/user.rb')
-rw-r--r--app/models/user.rb8
1 files changed, 4 insertions, 4 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index a82a7d28a..9459db7fe 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -126,18 +126,18 @@ class User < ApplicationRecord
   end
 
   def confirm
-    return if confirmed?
+    new_user = !confirmed?
 
     super
-    update_statistics!
+    update_statistics! if new_user
   end
 
   def confirm!
-    return if confirmed?
+    new_user = !confirmed?
 
     skip_confirmation!
     save!
-    update_statistics!
+    update_statistics! if new_user
   end
 
   def promote!