From 592fa59e88a8ca71927f184ed3c577c5706ab291 Mon Sep 17 00:00:00 2001 From: Paul Rosania Date: Thu, 6 May 2010 07:48:26 -0500 Subject: [PATCH] Automatically create the confirmation_token when email is sent for optionally confirmable models MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Valim --- lib/devise/models/confirmable.rb | 1 + test/models/confirmable_test.rb | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/lib/devise/models/confirmable.rb b/lib/devise/models/confirmable.rb index df774213..657cc162 100644 --- a/lib/devise/models/confirmable.rb +++ b/lib/devise/models/confirmable.rb @@ -50,6 +50,7 @@ module Devise # Send confirmation instructions by email def send_confirmation_instructions + generate_confirmation_token if self.confirmation_token.nil? ::Devise::Mailer.confirmation_instructions(self).deliver end diff --git a/test/models/confirmable_test.rb b/test/models/confirmable_test.rb index 94f8e618..ebff4edb 100644 --- a/test/models/confirmable_test.rb +++ b/test/models/confirmable_test.rb @@ -127,6 +127,14 @@ class ConfirmableTest < ActiveSupport::TestCase User.send_confirmation_instructions(:email => user.email) end end + + test 'should always have confirmation token when email is sent' do + user = new_user + user.instance_eval { def confirmation_required?; false end } + user.save + user.send_confirmation_instructions + assert_not_nil user.confirmation_token + end test 'should not resend email instructions if the user change his email' do user = create_user