Los usuarios desactivados a veces no se desactivan

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”).

Este es el otro (un miembro del personal diferente pudo “desactivar” al mismo usuario nuevamente 4 horas después sin una reactivación previa):

Estoy en la versión 2.9.0.beta9.

Este problema aún está en curso (ocurre varias veces al mes). ¿Alguien más lo ha notado?

Este es el código del controlador

El StaffActionLogger funciona correctamente, pero me pregunto si algo en el método User.deactivate podría estar fallando.

Lo que tienen en común los errores es que provienen de solicitudes de API. Esto es lo que suelo usar:

PUT https://<MI_SITIO>/admin/users/<ID_USUARIO>/deactivate

Api-Username:<USUARIO_ADMIN>
Api-Key:<CLAVE>

data: {"context":"/admin/users/<ID_USUARIO>/<NOMBRE_USUARIO>"}

Siempre obtengo “success: OK”

¿Hay algún otro registro que pueda consultar o algo que pueda intentar?

Estoy en la versión 2.9.0.beta11

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:

Discourse les enviará un correo electrónico de “Confirma tu nueva cuenta”:

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.

4 Me gusta

¡Misterio resuelto! Gracias, Simon. Puedes cerrar este hilo.

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.