diff options
author | Robert Speicher <rspeicher@gmail.com> | 2015-10-01 21:41:56 -0400 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2015-10-01 21:41:56 -0400 |
commit | ad7ad8745a33581680091c5ade9377c0aae74715 (patch) | |
tree | 3ae71778a92fecd9e4d70303d9aff9982e492bc6 | |
parent | 19748ddee6ef4c794d6cc30cdf1c607088cc5bf7 (diff) | |
download | gitlab-ce-ad7ad8745a33581680091c5ade9377c0aae74715.tar.gz |
Add User#recently_sent_password_reset?
-rw-r--r-- | app/models/user.rb | 4 | ||||
-rw-r--r-- | spec/models/user_spec.rb | 20 |
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) |