diff --git a/app/controllers/devise/sessions_controller.rb b/app/controllers/devise/sessions_controller.rb index 45e2e3e3..d62557d2 100644 --- a/app/controllers/devise/sessions_controller.rb +++ b/app/controllers/devise/sessions_controller.rb @@ -10,7 +10,7 @@ class Devise::SessionsController < ApplicationController # POST /resource/sign_in def create - resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_name}#new") + resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new") set_flash_message :notice, :signed_in sign_in_and_redirect(resource_name, resource) end diff --git a/test/integration/authenticatable_test.rb b/test/integration/authenticatable_test.rb index b94a0c30..c12e8642 100644 --- a/test/integration/authenticatable_test.rb +++ b/test/integration/authenticatable_test.rb @@ -292,7 +292,7 @@ class AuthenticationOthersTest < ActionController::IntegrationTest test 'uses the custom controller with the custom controller view' do get '/admin_area/sign_in' assert_contain 'Sign in' - assert_contain 'Welcome to "sessions" controller!' + assert_contain 'Welcome to "admins/sessions" controller!' assert_contain 'Welcome to "sessions/new" view!' end diff --git a/test/rails_app/app/controllers/sessions_controller.rb b/test/rails_app/app/controllers/admins/sessions_controller.rb similarity index 62% rename from test/rails_app/app/controllers/sessions_controller.rb rename to test/rails_app/app/controllers/admins/sessions_controller.rb index 7a24b276..1c1b0b8e 100644 --- a/test/rails_app/app/controllers/sessions_controller.rb +++ b/test/rails_app/app/controllers/admins/sessions_controller.rb @@ -1,4 +1,4 @@ -class SessionsController < Devise::SessionsController +class Admins::SessionsController < Devise::SessionsController def new flash[:special] = "Welcome to #{controller_path.inspect} controller!" super diff --git a/test/rails_app/app/views/sessions/new.html.erb b/test/rails_app/app/views/admins/sessions/new.html.erb similarity index 100% rename from test/rails_app/app/views/sessions/new.html.erb rename to test/rails_app/app/views/admins/sessions/new.html.erb diff --git a/test/rails_app/config/routes.rb b/test/rails_app/config/routes.rb index 3231e544..a3da5e39 100644 --- a/test/rails_app/config/routes.rb +++ b/test/rails_app/config/routes.rb @@ -19,7 +19,7 @@ Rails.application.routes.draw do match "/sign_in", :to => "devise/sessions#new" # Admin scope - devise_for :admin, :path => "admin_area", :controllers => { :sessions => "sessions" }, :skip => :passwords + devise_for :admin, :path => "admin_area", :controllers => { :sessions => "admins/sessions" }, :skip => :passwords match "/admin_area/home", :to => "admins#index", :as => :admin_root match "/anywhere", :to => "foo#bar", :as => :new_admin_password @@ -29,7 +29,7 @@ Rails.application.routes.draw do end # Other routes for routing_test.rb - namespace :publisher, :path_names => { :sign_in => "i_don_care", :sign_out => "get_out" } do + namespace :publisher, :path_names => { :sign_in => "i_dont_care", :sign_out => "get_out" } do devise_for :accounts, :class_name => "User", :path_names => { :sign_in => "get_in" } end @@ -43,10 +43,10 @@ Rails.application.routes.draw do } end - namespace :sign_out_via do - devise_for :deletes, :sign_out_via => :delete, :class_name => "User", :controllers => { :sessions => "sessions" } - devise_for :posts, :sign_out_via => :post, :class_name => "User", :controllers => { :sessions => "sessions" } - devise_for :delete_or_posts, :sign_out_via => [:delete, :post], :class_name => "User", :controllers => { :sessions => "sessions" } + namespace :sign_out_via, :module => "devise" do + devise_for :deletes, :sign_out_via => :delete, :class_name => "User" + devise_for :posts, :sign_out_via => :post, :class_name => "User" + devise_for :delete_or_posts, :sign_out_via => [:delete, :post], :class_name => "User" end match "/set", :to => "home#set" diff --git a/test/routes_test.rb b/test/routes_test.rb index f51513a6..05613f19 100644 --- a/test/routes_test.rb +++ b/test/routes_test.rb @@ -116,7 +116,7 @@ class CustomizedRoutingTest < ActionController::TestCase end test 'map admin with :controllers option' do - assert_recognizes({:controller => 'sessions', :action => 'new'}, {:path => 'admin_area/sign_in', :method => :get}) + assert_recognizes({:controller => 'admins/sessions', :action => 'new'}, {:path => 'admin_area/sign_in', :method => :get}) end test 'does not map admin password' do @@ -154,24 +154,24 @@ class CustomizedRoutingTest < ActionController::TestCase end test 'map deletes with :sign_out_via option' do - assert_recognizes({:controller => 'sessions', :action => 'destroy'}, {:path => '/sign_out_via/deletes/sign_out', :method => :delete}) + assert_recognizes({:controller => 'devise/sessions', :action => 'destroy'}, {:path => '/sign_out_via/deletes/sign_out', :method => :delete}) assert_raise ActionController::RoutingError do - assert_recognizes({:controller => 'sessions', :action => 'destroy'}, {:path => '/sign_out_via/deletes/sign_out', :method => :get}) + assert_recognizes({:controller => 'devise/sessions', :action => 'destroy'}, {:path => '/sign_out_via/deletes/sign_out', :method => :get}) end end test 'map posts with :sign_out_via option' do - assert_recognizes({:controller => 'sessions', :action => 'destroy'}, {:path => '/sign_out_via/posts/sign_out', :method => :post}) + assert_recognizes({:controller => 'devise/sessions', :action => 'destroy'}, {:path => '/sign_out_via/posts/sign_out', :method => :post}) assert_raise ActionController::RoutingError do - assert_recognizes({:controller => 'sessions', :action => 'destroy'}, {:path => '/sign_out_via/posts/sign_out', :method => :get}) + assert_recognizes({:controller => 'devise/sessions', :action => 'destroy'}, {:path => '/sign_out_via/posts/sign_out', :method => :get}) end end test 'map delete_or_posts with :sign_out_via option' do - assert_recognizes({:controller => 'sessions', :action => 'destroy'}, {:path => '/sign_out_via/delete_or_posts/sign_out', :method => :post}) - assert_recognizes({:controller => 'sessions', :action => 'destroy'}, {:path => '/sign_out_via/delete_or_posts/sign_out', :method => :delete}) + assert_recognizes({:controller => 'devise/sessions', :action => 'destroy'}, {:path => '/sign_out_via/delete_or_posts/sign_out', :method => :post}) + assert_recognizes({:controller => 'devise/sessions', :action => 'destroy'}, {:path => '/sign_out_via/delete_or_posts/sign_out', :method => :delete}) assert_raise ActionController::RoutingError do - assert_recognizes({:controller => 'sessions', :action => 'destroy'}, {:path => '/sign_out_via/delete_or_posts/sign_out', :method => :get}) + assert_recognizes({:controller => 'devise/sessions', :action => 'destroy'}, {:path => '/sign_out_via/delete_or_posts/sign_out', :method => :get}) end end end