Пожалуйста, оцените короткий скрипт на Ruby для приостановки неактивных пользователей

Хм, глядя на это, я думаю, что мне следует именно замолчать аккаунт, а не приостанавливать его. Если аккаунт приостановлен, пользователь не сможет войти в систему, чтобы подтвердить его.

Вот исправленный вариант …

Версия 0.0.2
silence_reason = 'Inactive'
User.where("views = 0 OR approved = FALSE OR last_seen_at IS NULL")
    .where("id > 0") # избегаем системных пользователей
    .find_each do |user|
  user.silence(reason: silence_reason)
  user.change_trust_level!(TrustLevel[0])
  user.save!
  logger.log_user_silence(user, silence_reason)
  DiscourseEvent.trigger(:user_silenced, user: user)
  sleep(5)
end

Да, я сделаю резервную копию перед выполнением любых действий.
Да, я знаю, что некоторые существующие уровни доверия (TL) будут изменены, и мне придется их исправить.

Кроме того, вместо молчания или вместе с ним, стоит ли установить Approved=false или Active=false? Я полагаю, что это заставит пользователя нажать на ссылку в письме, а не просто войти в систему вручную, что служит целью подтверждения адреса электронной почты.

Всё это связано с моей недавней темой: notes-on-silencing-or-deleting-users

[EDIT]
У меня также установлено значение “grace period days для удаления неактивированных пользователей” равным 7.
Сбрасывает ли молчание или приостановка этот период? Если да, то если пользователи не отреагируют на действие с аккаунтом в течение 7 дней, я не возражаю против их удаления.

Наконец (да, действительно), у меня также установлено значение “clean up inactive users after days” равным 365. Я могу уменьшить его до 60, пока форум ещё открывается, и просто позволить существующим аккаунтам исчезнуть из списка. Затем увеличить обратно до 365. Является ли это разумным подходом к автоматической очистке аккаунтов в новой среде?