aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGareth Rees <gareth@mysociety.org>2014-10-20 10:01:06 +0100
committerGareth Rees <gareth@mysociety.org>2014-10-29 13:01:10 +0000
commit3b7f5b6daafb75dde3274d69a80f0e71cf54ebff (patch)
treec04ffc38202cef04421d3ccc72b40e3069c43e59
parent7a3b462f41321034cbdd2c83707f739a442e83c6 (diff)
Extract complexity in ChangeEmailValidator
Add some private methods to add more semantics to conditionals
-rw-r--r--app/models/change_email_validator.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/app/models/change_email_validator.rb b/app/models/change_email_validator.rb
index b6708640f..7ee6654bb 100644
--- a/app/models/change_email_validator.rb
+++ b/app/models/change_email_validator.rb
@@ -41,9 +41,9 @@ class ChangeEmailValidator
check_email_is_present_and_valid(:old_email)
if errors[:old_email].blank?
- if old_email.downcase != logged_in_user.email.downcase
+ if !email_belongs_to_user?(old_email)
errors.add(:old_email, _("Old email address isn't the same as the address of the account you are logged in with"))
- elsif (!changing_email) && (!logged_in_user.has_this_password?(password))
+ elsif !changing_email && !correct_password?
if errors[:password].blank?
errors.add(:password, _("Password is not correct"))
end
@@ -59,4 +59,12 @@ class ChangeEmailValidator
end
end
+ def email_belongs_to_user?(email)
+ email.downcase == logged_in_user.email.downcase
+ end
+
+ def correct_password?
+ logged_in_user.has_this_password?(password)
+ end
+
end