Skip to content

Commit

Permalink
Revert "[#4245] Allowing password to nil (#4261)"
Browse files Browse the repository at this point in the history
This reverts commit 3aedbf0.
  • Loading branch information
mracos committed Mar 26, 2019
1 parent e704221 commit f9d13f0
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 14 deletions.
6 changes: 2 additions & 4 deletions lib/devise/models/database_authenticatable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,17 @@ def self.required_fields(klass)
# the hashed password.
def password=(new_password)
@password = new_password
self.encrypted_password = password_digest(@password)
self.encrypted_password = password_digest(@password) if @password.present?
end

# Verifies whether a password (ie from sign in) is the user password.
def valid_password?(password)
return false if password.blank?
Devise::Encryptor.compare(self.class, encrypted_password, password)
end

# Set password and password confirmation to nil
def clean_up_passwords
@password = @password_confirmation = nil
self.password = self.password_confirmation = nil
end

# Update record attributes when :current_password matches, otherwise
Expand Down Expand Up @@ -199,7 +198,6 @@ def send_password_change_notification
# See https://github.com/plataformatec/devise-encryptable for examples
# of other hashing engines.
def password_digest(password)
return if password.blank?
Devise::Encryptor.digest(self.class, password)
end

Expand Down
13 changes: 3 additions & 10 deletions test/models/database_authenticatable_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -117,9 +117,9 @@ def setup
assert_nil user.authenticatable_salt
end

test 'should set encrypted password to nil if password is nil' do
assert_nil new_user(password: nil).encrypted_password
assert_nil new_user(password: '').encrypted_password
test 'should not generate a hashed password if password is blank' do
assert_blank new_user(password: nil).encrypted_password
assert_blank new_user(password: '').encrypted_password
end

test 'should hash password again if password has changed' do
Expand Down Expand Up @@ -307,11 +307,4 @@ def setup
]
end
end

test 'nil password should be invalid if password is set to nil' do
user = User.create(email: "HEllO@example.com", password: "12345678")
user.password = nil
refute user.valid_password?('12345678')
refute user.valid_password?(nil)
end
end

0 comments on commit f9d13f0

Please sign in to comment.