From fc3af50b55acdb731f30b537d572dd84376bf52c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 17 Feb 2012 09:31:01 +0100 Subject: [PATCH] Fix regression where warden was being configured too early. --- lib/devise/rails.rb | 2 -- lib/devise/rails/routes.rb | 10 ++++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/devise/rails.rb b/lib/devise/rails.rb index 99ae6c7a..98d51b2b 100644 --- a/lib/devise/rails.rb +++ b/lib/devise/rails.rb @@ -87,8 +87,6 @@ module Devise end config.after_initialize do - Devise.configure_warden! - example = <<-YAML en: devise: diff --git a/lib/devise/rails/routes.rb b/lib/devise/rails/routes.rb index 332fe57c..95748a19 100644 --- a/lib/devise/rails/routes.rb +++ b/lib/devise/rails/routes.rb @@ -7,11 +7,8 @@ module ActionDispatch::Routing def finalize_with_devise! result = finalize_without_devise! - # If @devise_finalized was defined, it means devise_for was invoked - # in this router, so we proceed to generate devise helpers unless - # they were already defined (which then @devise_finalizd would be true). - if defined?(@devise_finalized) && !@devise_finalized - if Devise.router_name.nil? && self != Rails.application.try(:routes) + @devise_finalized ||= begin + if Devise.router_name.nil? && defined?(@devise_finalized) && self != Rails.application.try(:routes) warn "[DEVISE] We have detected that you are using devise_for inside engine routes. " \ "In this case, you probably want to set Devise.router_name = MOUNT_POINT, where " \ "MOUNT_POINT is a symbol representing where this engine will be mounted at. For " \ @@ -19,8 +16,9 @@ module ActionDispatch::Routing " to :main_app as well in case you want to keep the current behavior." end + Devise.configure_warden! Devise.regenerate_helpers! - @devise_finalized = true + true end result