diff options
-rw-r--r-- | app/models/user.rb | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 36594137d..8405fa4b6 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -687,10 +687,12 @@ class User < Principal # was compromised. def destroy_tokens tokens = [] - tokens |= ['recovery', 'autologin'] if changes.has_key?('hashed_password') - tokens |= ['recovery'] if changes.has_key?('mail') + tokens |= ['recovery', 'autologin'] if hashed_password_changed? + tokens |= ['recovery'] if mail_changed? - Token.delete_all(['user_id = ? AND action IN (?)', self.id, tokens]) if tokens.any? + if tokens.any? + Token.where(:user_id => id, :action => tokens).delete_all + end end # Removes references that are not handled by associations |