Uno de nuestros usuarios tiene dos cuentas en Discourse: una que ya no utiliza y una nueva a la que no puede acceder. Parece que el problema se debe a que su nueva cuenta en nuestro proveedor de CAS SSO tiene configurada la misma dirección de correo electrónico que su antigua cuenta en nuestro foro.
He experimentado con mi propia cuenta de prueba, intentando desactivarla y eliminar el registro SSO. Sin embargo, esto parece impedir nuevos accesos a esa cuenta, ya que el registro existente ya no coincide con la carga útil de SSO, y ahora la dirección de correo electrónico se considera conflictiva.
También intenté cambiar la dirección de correo electrónico en la cuenta de Discourse no utilizada del usuario para que pudiera iniciar sesión con esa dirección en su nueva cuenta. No obstante, se requiere una confirmación por correo electrónico. Configuré un alias de correo en nuestro servidor SMTP para poder interceptar cualquier dirección. Sin embargo, al seguir el enlace, necesito iniciar sesión como ese usuario mediante SSO. El problema es que tendría que reactivar la cuenta del usuario, establecer una nueva contraseña, vincular su cuenta a nuestra base de datos de miembros y crear una membresía falsa en nuestro proveedor de SSO. Esto es factible, pero siento que estoy enredándome en una maraña complicada para solucionar la cuenta de este usuario.
Acceder a la base de datos y realizar el cambio mediante consultas SQL es algo que he hecho en el pasado, pero es arriesgado y preferiría evitar ese enfoque si es posible.
Si no rompe Discourse, me encantaría contar con una función que me permita eliminar una dirección de correo electrónico en una cuenta desactivada, en lugar de simplemente establecerla como no confirmada.
Si existen otras formas de abordar este problema, por favor házmelo saber. ¡Gracias!
Creo que estás utilizando la implementación de SSO de Discourse y configurando el parámetro require_activation del SSO en true en la carga útil del SSO. Si ese es el caso, consulta este tema para obtener detalles sobre cómo solucionar el problema: Debug and fixing common DiscourseConnect issues. Es más seguro ejecutar los comandos de la consola de Rails que se indican en ese tema que actualizar directamente tu base de datos con consultas SQL.
Fusionar las dos cuentas, como se indica en la publicación anterior, probablemente sea un buen enfoque, pero es posible que debas realizar algunos ajustes en el registro de SSO después de hacerlo.
También encontré esto recientemente mediante una búsqueda merge user accounts. Esta opción sigue disponible haciendo clic en el usuario de la lista de usuarios activos (Panel de Administración) y desplazándose hasta el final para ver los 3 botones que se muestran a continuación.
A principios de 2018 añadimos soporte para fusionar dos cuentas de usuario. Para ello era necesario tener acceso SSH al servidor, ya que la funcionalidad de fusión se implementó como una tarea rake.
Ahora cualquier administrador puede fusionar usuarios. Visita la página de administración de usuarios y selecciona “Transferir y eliminar” en la parte inferior de la página.
Introduce el nombre de usuario al que quieres fusionar la cuenta y haz clic en “Transferir y eliminar @nombredeusuario” para iniciar el proceso de fusión.
Gracias por los consejos y la ayuda en esto. Lo probaré en algunas cuentas de prueba la próxima semana y te avisaré si encuentro algún problema importante. Gracias : )
Vale, así que todo salió bien. Cuando fusioné las cuentas, Discourse conservó las credenciales de SSO de la cuenta objetivo/fusionada/no eliminada, y la otra cuenta se eliminó.