[#10753] Mark email as verified for users who signed in at least once in the last 5 months.
This commit is contained in:
parent
b5c024cca5
commit
678c9ea6bc
3 changed files with 45 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -22,6 +22,7 @@ uploads/*
|
||||||
*.swp
|
*.swp
|
||||||
.envrc
|
.envrc
|
||||||
.env
|
.env
|
||||||
|
.tool-versions
|
||||||
storage/
|
storage/
|
||||||
/node_modules
|
/node_modules
|
||||||
/yarn-error.log
|
/yarn-error.log
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
namespace :after_party do
|
||||||
|
desc 'Deployment task: mark_email_verified_when_user_signed_in_during_last_5_months'
|
||||||
|
task mark_email_verified_when_user_signed_in_during_last_5_months: :environment do
|
||||||
|
affected_users_count = User.where(email_verified_at: nil, sign_in_count: 1..).count
|
||||||
|
|
||||||
|
puts "Processing #{affected_users_count} users signed in during the last 5 months and not verified"
|
||||||
|
|
||||||
|
User.where(email_verified_at: nil, sign_in_count: 1..).update_all(email_verified_at: Time.zone.now)
|
||||||
|
puts "Done"
|
||||||
|
|
||||||
|
AfterParty::TaskRecord
|
||||||
|
.create version: AfterParty::TaskRecorder.new(__FILE__).timestamp
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
describe 'after_party:mark_email_verified_when_user_signed_in_during_last_5_months' do
|
||||||
|
let(:rake_task) { Rake::Task['after_party:mark_email_verified_when_user_signed_in_during_last_5_months'] }
|
||||||
|
|
||||||
|
subject { rake_task.invoke }
|
||||||
|
after(:each) { rake_task.reenable }
|
||||||
|
|
||||||
|
let(:old_date) { 6.months.ago }
|
||||||
|
|
||||||
|
let!(:user) { create(:user, email_verified_at: nil, sign_in_count: 1) }
|
||||||
|
let!(:user2) { create(:user, email_verified_at: nil, sign_in_count: 1) }
|
||||||
|
let!(:user3) { create(:user, email_verified_at: nil, sign_in_count: 0) }
|
||||||
|
let!(:user4) { create(:user, email_verified_at: old_date, sign_in_count: 1) }
|
||||||
|
|
||||||
|
it 'mark_email_verified_when_user_signed_in_during_last_5_months' do
|
||||||
|
expect(User.where(email_verified_at: nil, sign_in_count: 1..).count).to eq(2)
|
||||||
|
|
||||||
|
subject
|
||||||
|
|
||||||
|
expect(User.where(email_verified_at: nil, sign_in_count: 1..).count).to eq(0)
|
||||||
|
expect(user.reload.email_verified_at).to be_present
|
||||||
|
expect(user2.reload.email_verified_at).to be_present
|
||||||
|
expect(user3.reload.email_verified_at).to be_nil
|
||||||
|
expect(user4.reload.email_verified_at).to eq(old_date)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue