diff --git a/CHANGELOG.rdoc b/CHANGELOG.rdoc index 41429fde..8671af2d 100644 --- a/CHANGELOG.rdoc +++ b/CHANGELOG.rdoc @@ -1,3 +1,9 @@ +== 0.4.3 + +* bug fix + * [#29] Authentication fail if user cannot be serialized from session; + * Default configuration values should not overwrite user values; + == 0.4.2 * deprecations diff --git a/Rakefile b/Rakefile index d322423a..88bb85d0 100644 --- a/Rakefile +++ b/Rakefile @@ -36,7 +36,7 @@ begin s.description = "Flexible authentication solution for Rails with Warden" s.authors = ['José Valim', 'Carlos Antônio'] s.files = FileList["[A-Z]*", "{app,config,generators,lib}/**/*", "init.rb"] - s.add_dependency("warden", "~> 0.5.1") + s.add_dependency("warden", "~> 0.5.2") end Jeweler::GemcutterTasks.new diff --git a/lib/devise/warden.rb b/lib/devise/warden.rb index 808990cc..8024de46 100644 --- a/lib/devise/warden.rb +++ b/lib/devise/warden.rb @@ -13,7 +13,7 @@ Warden::Manager.serialize_into_session{ |user| [user.class, user.id] } # Session Serialization out. This block gets the user out of the session. # It should be the reverse of serializing the object into the session Warden::Manager.serialize_from_session do |klass, id| - klass.find(id) + klass.find_by_id(id) end # Setup devise strategies for Warden diff --git a/test/integration/authenticatable_test.rb b/test/integration/authenticatable_test.rb index 11a8200c..0014f87d 100644 --- a/test/integration/authenticatable_test.rb +++ b/test/integration/authenticatable_test.rb @@ -184,4 +184,12 @@ class AuthenticationTest < ActionController::IntegrationTest visit 'users/index' assert_equal "Cart", @controller.user_session[:cart] end + + test 'destroyed account is logged out' do + sign_in_as_user + visit 'users/index' + User.destroy_all + visit 'users/index' + assert_redirected_to '/users/sign_in?unauthenticated=true' + end end