summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/user.rb4
-rw-r--r--spec/models/user_spec.rb20
2 files changed, 24 insertions, 0 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index 3879f3fd381..6a1e5fd52e7 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -327,6 +327,10 @@ class User < ActiveRecord::Base
@reset_token
end
+ def recently_sent_password_reset?
+ reset_password_sent_at.present? && reset_password_sent_at >= 1.minute.ago
+ end
+
def disable_two_factor!
update_attributes(
two_factor_enabled: false,
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 480950859a2..b45c78f38de 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -227,6 +227,26 @@ describe User do
end
end
+ describe 'recently_sent_password_reset?' do
+ it 'is false when reset_password_sent_at is nil' do
+ user = build_stubbed(:user, reset_password_sent_at: nil)
+
+ expect(user.recently_sent_password_reset?).to eq false
+ end
+
+ it 'is false when sent more than one minute ago' do
+ user = build_stubbed(:user, reset_password_sent_at: 5.minutes.ago)
+
+ expect(user.recently_sent_password_reset?).to eq false
+ end
+
+ it 'is true when sent less than one minute ago' do
+ user = build_stubbed(:user, reset_password_sent_at: Time.now)
+
+ expect(user.recently_sent_password_reset?).to eq true
+ end
+ end
+
describe '#disable_two_factor!' do
it 'clears all 2FA-related fields' do
user = create(:user, :two_factor)