¿Cómo eliminar un registro de SSO mediante la API? Estoy usando Discourse y estoy cambiando el external_id. ¿Cómo puedo borrar los registros antiguos de este sin perder a mi usuario ni sus publicaciones?
¿Quizás simplemente elimines todos los registros de SSO una vez desde la consola de Rails y los dejes reconectar mediante la dirección de correo electrónico? No recuerdo con certeza qué tabla estás buscando, pero podría ser algo como
UserAssociatedAccount.all.destroy_all
Creo que hay algunos otros temas sobre este problema. ¿Ya has buscado?
Se espera que el external_id que se pasa desde el proveedor de SSO nunca cambie. Si es posible, debes evitar cambiar los valores de external_id de tus usuarios.
Mientras no estés configurando el parámetro de SSO require_activation como true, puedes eliminar todos los registros de SSO como mencionó Jay. Para hacer esto, ingresa a la consola de tu sitio y ejecuta:
SingleSignOnRecord.destroy_all
Antes de hacerlo, debes asegurarte de que no estás configurando require_activation como true en la carga útil de SSO. Si este parámetro está configurado, los usuarios no serán encontrados según su dirección de correo electrónico la próxima vez que inicien sesión en el sitio. En lugar de eso, recibirán un error al intentar iniciar sesión.
Si el parámetro require_activation no está configurado como true, los usuarios serán encontrados según su dirección de correo electrónico la próxima vez que inicien sesión en Discourse. En ese momento, se creará un nuevo registro de SSO para ellos. Si las direcciones de correo electrónico de algún usuario no están sincronizadas entre tu sitio proveedor de SSO y Discourse, encontrarán problemas la próxima vez que inicien sesión en Discourse. Puedes encontrar algunos detalles sobre cómo solucionar esos problemas aquí: Debug and fixing common DiscourseConnect issues.
Si vas a ejecutar el comando que publiqué anteriormente, asegúrate de crear una copia de seguridad de la base de datos de tu sitio antes de ejecutarlo. Si algo sale mal, podrás restaurar el archivo de copia de seguridad.
Mi foro de Discourse está en el plan STANDARD. ¿Es posible tener acceso a la consola de Rails con este plan? De ser así, ¿cómo debo proceder?
Envía un correo electrónico a support@discourse.org o @support para ejecutar el comando anterior.