40 lines
1 KiB
Ruby
40 lines
1 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Maintenance
|
||
|
# This task backfills the email_verified_at field for confirmed users
|
||
|
# as a bug fixed by https://github.com/demarches-simplifiees/demarches-simplifiees.fr/pull/11074
|
||
|
# produced unverified confirmed users.
|
||
|
class VerifyConfirmedUsersTask < MaintenanceTasks::Task
|
||
|
include RunnableOnDeployConcern
|
||
|
|
||
|
run_on_first_deploy
|
||
|
|
||
|
no_collection
|
||
|
|
||
|
attribute :verifying_date, :string
|
||
|
attribute :correction_period, :integer
|
||
|
|
||
|
def process
|
||
|
email_verified_at = if verifying_date.present?
|
||
|
Time.zone.parse(verifying_date)
|
||
|
else
|
||
|
Time.zone.parse('25/11/2024')
|
||
|
end
|
||
|
|
||
|
created_at = if correction_period.present?
|
||
|
correction_period.months.ago..
|
||
|
else
|
||
|
4.months.ago..
|
||
|
end
|
||
|
|
||
|
User
|
||
|
.where.not(confirmed_at: nil)
|
||
|
.where(email_verified_at: nil)
|
||
|
.where(created_at:)
|
||
|
.where(instructeur: { id: nil }) # instructeur is eager loaded
|
||
|
.where.missing(:expert)
|
||
|
.update_all(email_verified_at:)
|
||
|
end
|
||
|
end
|
||
|
end
|