Hmm, al ver eso, creo que debería silenciar una cuenta en lugar de suspenderla. Si la cuenta está suspendida, el usuario no puede iniciar sesión para reclamarla.
Aquí hay una revisión…
Versión 0.0.2
silence_reason = 'Inactivo'
User.where("views = 0 OR approved = FALSE OR last_seen_at IS NULL")
.where("id > 0") # evitar usuarios del sistema
.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
Sí, haré una copia de seguridad antes de hacer nada de esto.
Sí, sé que algunos TL existentes se reorganizarán y tendré que arreglarlos.
Además, en lugar de silenciar, ¿debería establecer Approved=false o Active=false? Creo que eso obligaría al usuario a hacer clic en el enlace del correo electrónico en lugar de hacerlo manualmente, lo que cumple el propósito de validar la dirección de correo electrónico.
Todo esto está relacionado con mi hilo reciente: notas-sobre-silenciar-o-eliminar-usuarios
[EDITAR]
También tengo “purgar usuarios no activados período de gracia días” establecido en 7.
¿Un silencio o suspensión reinicia esto? Si es así, si las personas no responden a una acción de cuenta dentro de los 7 días, no tengo ningún problema en purgarlas.
Finalmente (sí, de verdad) también tengo “limpiar usuarios inactivos después de días” establecido en 365. Puedo reducirlo a 60 mientras el foro todavía se está abriendo y simplemente dejar que las cuentas existentes desaparezcan de la lista. Luego, volver a aumentarlo a 365. ¿Es ese un enfoque razonable para la poda automática de cuentas en un entorno nuevo?