From 731f156f5046c536dab832154b4766a97cd14671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 15 Apr 2010 08:40:15 +0200 Subject: [PATCH] Do not show unlock link unless strategy is e-mail. Closes #204. --- app/views/devise/shared/_links.erb | 2 +- test/integration/lockable_test.rb | 10 +++++++++- test/rails_app/config/initializers/secret_token.rb | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/views/devise/shared/_links.erb b/app/views/devise/shared/_links.erb index 56b9cc73f8..414904bde9 100644 --- a/app/views/devise/shared/_links.erb +++ b/app/views/devise/shared/_links.erb @@ -14,6 +14,6 @@ <%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %>
<% end -%> -<%- if devise_mapping.lockable? && controller_name != 'unlocks' %> +<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %> <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %>
<% end -%> diff --git a/test/integration/lockable_test.rb b/test/integration/lockable_test.rb index 9eb4138f25..02b0217514 100644 --- a/test/integration/lockable_test.rb +++ b/test/integration/lockable_test.rb @@ -37,8 +37,16 @@ def visit_user_unlock_with_token(unlock_token) end test 'unlocked pages should not be available if email strategy is disabled' do - visit new_user_unlock_path + visit "/users/sign_in" + click_link "Didn't receive unlock instructions?" + swap Devise, :unlock_strategy => :time do + visit "/users/sign_in" + + assert_raise Webrat::NotFoundError do + click_link "Didn't receive unlock instructions?" + end + assert_raise AbstractController::ActionNotFound do visit new_user_unlock_path end diff --git a/test/rails_app/config/initializers/secret_token.rb b/test/rails_app/config/initializers/secret_token.rb index aba22be6dd..d27fc2d907 100644 --- a/test/rails_app/config/initializers/secret_token.rb +++ b/test/rails_app/config/initializers/secret_token.rb @@ -1,2 +1,2 @@ -Rails.application.config.cookie_secret = 'ea942c41850d502f2c8283e26bdc57829f471bb18224ddff0a192c4f32cdf6cb5aa0d82b3a7a7adbeb640c4b06f3aa1cd5f098162d8240f669b39d6b49680571' +Rails.application.config.secret_token = 'ea942c41850d502f2c8283e26bdc57829f471bb18224ddff0a192c4f32cdf6cb5aa0d82b3a7a7adbeb640c4b06f3aa1cd5f098162d8240f669b39d6b49680571' Rails.application.config.session_store :cookie_store, :key => "_my_app" \ No newline at end of file