From 6e4c5bae29abb73355d24f44c0219c402c137e11 Mon Sep 17 00:00:00 2001
From: Benjamin Neff <benjamin@coding4coffee.ch>
Date: Sat, 5 Aug 2017 22:45:11 +0200
Subject: [PATCH] Replace `attribute_changed?` with new methods

---
 app/models/user.rb | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/app/models/user.rb b/app/models/user.rb
index 3be7770d37..629649d4e1 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -473,14 +473,17 @@ class User < ApplicationRecord
   def guard_unconfirmed_email
     self.unconfirmed_email = nil if unconfirmed_email.blank? || unconfirmed_email == email
 
-    if unconfirmed_email_changed?
-      self.confirm_email_token = unconfirmed_email ? SecureRandom.hex(15) : nil
-    end
+    return unless will_save_change_to_unconfirmed_email?
+
+    self.confirm_email_token = unconfirmed_email ? SecureRandom.hex(15) : nil
   end
 
   # Whenever email is set, clear all unconfirmed emails which match
   def remove_invalid_unconfirmed_emails
-    User.where(unconfirmed_email: email).update_all(unconfirmed_email: nil, confirm_email_token: nil) if email_changed?
+    return unless saved_change_to_email?
+    # rubocop:disable Rails/SkipsModelValidations
+    User.where(unconfirmed_email: email).update_all(unconfirmed_email: nil, confirm_email_token: nil)
+    # rubocop:enable Rails/SkipsModelValidations
   end
 
   # Generate public/private keys for User and associated Person
-- 
GitLab