diff options
author | Phil Calvin <pncalvin@gmail.com> | 2013-05-20 12:13:21 -0700 |
---|---|---|
committer | Steve Klabnik <steve@steveklabnik.com> | 2013-05-30 11:18:43 -0700 |
commit | 5d93ef8f459254f075616d37763611ad87d86b30 (patch) | |
tree | 36d1f98418cb7ef3408c2335795130fa2fa1e2b6 /activemodel/lib/active_model/secure_password.rb | |
parent | 6a6eae200d584ce059cff0496675ef382ff5303d (diff) | |
download | rails-5d93ef8f459254f075616d37763611ad87d86b30.tar.gz rails-5d93ef8f459254f075616d37763611ad87d86b30.tar.bz2 rails-5d93ef8f459254f075616d37763611ad87d86b30.zip |
Fix regression in has_secure_password.
If the confirmation was blank, but the password wasn't, it would still save.
Diffstat (limited to 'activemodel/lib/active_model/secure_password.rb')
-rw-r--r-- | activemodel/lib/active_model/secure_password.rb | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/activemodel/lib/active_model/secure_password.rb b/activemodel/lib/active_model/secure_password.rb index 750fd723a0..e553590671 100644 --- a/activemodel/lib/active_model/secure_password.rb +++ b/activemodel/lib/active_model/secure_password.rb @@ -56,8 +56,9 @@ module ActiveModel include InstanceMethodsOnActivation if options.fetch(:validations, true) - validates_confirmation_of :password + validates_confirmation_of :password, if: lambda { |m| m.password.present? } validates_presence_of :password, on: :create + validates_presence_of :password_confirmation, if: lambda { |m| m.password.present? } before_create { raise "Password digest missing on new record" if password_digest.blank? } end @@ -106,9 +107,7 @@ module ActiveModel end def password_confirmation=(unencrypted_password) - unless unencrypted_password.blank? - @password_confirmation = unencrypted_password - end + @password_confirmation = unencrypted_password end end end |