No he encontrado una forma de reproducir este problema, pero durante el último mes he notado dos casos en los que un usuario supuestamente fue desactivado (como se ve en los registros de acciones del personal) pero en realidad no fue desactivado (el usuario aún podía iniciar sesión).
Por ejemplo, este fue “desactivado” hace 29 días, pero pudo enviarme un mensaje privado hoy (las únicas otras acciones del personal después de la desactivación son “verificar correo electrónico”).
Esto todavía está sucediendo esporádicamente. Por ejemplo, este usuario fue inicialmente “desactivado” el 23 de agosto, pero me acabo de dar cuenta ahora de que todavía estaba activo y lo desactivé.
¿Cómo puede un usuario ser desactivado dos veces (sin una reactivación intermedia)?
Tengo una tarea diaria que ejecuta una consulta para verificar esta situación. No devolvió nada ayer y solo este usuario hoy, por lo que parece que el usuario fue correctamente desactivado el 23 de agosto, pero de alguna manera se activó ayer (sin que se registrara en ninguna parte).
¿Es posible activar a un usuario (a través de la API o la interfaz de usuario) y no dejar rastro? Supongo que esto solo podría suceder modificando la base de datos directamente, lo cual estoy seguro de que no hice (soy el único administrador).
Esto puede suceder. Todo lo que un usuario desactivado necesita hacer para reactivar su cuenta es intentar iniciar sesión en el sitio y luego hacer clic en el enlace del correo electrónico de activación que se le envía.
Cuando un usuario desactivado intenta iniciar sesión, verá esta ventana modal:
Después de hacer clic en el enlace del correo electrónico, el usuario iniciará sesión en Discourse.
Este ha sido el comportamiento desde que tengo memoria. No creo que sea un error, pero podría estar equivocado. Enviar un correo electrónico de “Confirma tu nueva cuenta” a un usuario que ya tiene una cuenta parece un poco extraño.
Editar: para obtener el comportamiento que buscas, probablemente quieras “suspender” al usuario en lugar de desactivarlo.