39 lines
1 KiB
Ruby
39 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
|