From fe0f6e96b31cb15addf5fef39c02dcea1e338ea2 Mon Sep 17 00:00:00 2001 From: Marcelo Silveira Date: Mon, 11 Jun 2012 17:52:10 -0300 Subject: [PATCH] Persist unlock token before triggering mailer --- lib/devise/models/lockable.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/devise/models/lockable.rb b/lib/devise/models/lockable.rb index cdc35df0..0e7c8f39 100644 --- a/lib/devise/models/lockable.rb +++ b/lib/devise/models/lockable.rb @@ -38,11 +38,11 @@ module Devise self.locked_at = Time.now.utc if unlock_strategy_enabled?(:email) - generate_unlock_token + generate_unlock_token! send_unlock_instructions + else + save(:validate => false) end - - save(:validate => false) end # Unlock a user by cleaning locked_at and failed_attempts. @@ -123,6 +123,10 @@ module Devise self.unlock_token = self.class.unlock_token end + def generate_unlock_token! + generate_unlock_token && save(:validate => false) + end + # Tells if the lock is expired if :time unlock strategy is active def lock_expired? if unlock_strategy_enabled?(:time)