Compare commits

..

2 Commits

Author SHA1 Message Date
Ulisses Almeida
321fe1d13b Release 3.5.10 2016-05-15 12:14:04 -03:00
Ralin Chimev
a7dcf98f7e Fix overwriting the remember_token when a valid one already exists (#4101)
The remember_token should not get overwritten when a user is
signing in and a valid token already exists.

Fixes #3950.
2016-05-15 12:12:48 -03:00
5 changed files with 20 additions and 5 deletions

View File

@@ -1,4 +1,7 @@
### Unreleased
### 3.5.10 - 2016-05-15
* bug fixes
* Fix overwriting the remember_token when a valid one already exists (by @ralinchimev).
### 3.5.9 - 2016-05-02

View File

@@ -1,7 +1,7 @@
PATH
remote: .
specs:
devise (3.5.9)
devise (3.5.10)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 3.2.6, < 5)
@@ -184,4 +184,4 @@ DEPENDENCIES
webrat (= 0.7.3)
BUNDLED WITH
1.11.2
1.12.3

View File

@@ -48,7 +48,7 @@ module Devise
# TODO: We were used to receive a extend period argument but we no longer do.
# Remove this for Devise 4.0.
def remember_me!(*)
self.remember_token = self.class.remember_token if respond_to?(:remember_token)
self.remember_token ||= self.class.remember_token if respond_to?(:remember_token)
self.remember_created_at ||= Time.now.utc
save(validate: false) if self.changed?
end

View File

@@ -1,3 +1,3 @@
module Devise
VERSION = "3.5.9".freeze
VERSION = "3.5.10".freeze
end

View File

@@ -16,6 +16,18 @@ class RememberableTest < ActiveSupport::TestCase
assert user.remember_created_at
end
test 'remember_me should not generate a new token if valid token exists' do
user = create_user
user.singleton_class.send(:attr_accessor, :remember_token)
User.to_adapter.expects(:find_first).returns(nil)
user.remember_me!
existing_token = user.remember_token
user.remember_me!
assert_equal existing_token, user.remember_token
end
test 'forget_me should not clear remember token if using salt' do
user = create_user
user.remember_me!