Como excluir um registro SSO via API? Estou usando o Discourse e alterando o external_id. Como posso limpar os registros antigos disso sem perder meu usuário e minhas postagens?
Talvez você possa simplesmente excluir todos os registros de SSO uma vez pelo console do Rails e permitir que eles se reconectem por meio do e-mail? Não tenho certeza de qual tabela você está procurando, mas pode ser algo como
UserAssociatedAccount.all.destroy_all
Acho que existem alguns outros tópicos sobre esse problema. Você já procurou?
O external_id enviado pelo provedor de SSO deve nunca mudar. Se for possível, você deve evitar alterar os valores de external_id do seu usuário.
Desde que você não esteja definindo o parâmetro de SSO require_activation como true, você pode excluir todos os registros de SSO, conforme mencionado por Jay. Para fazer isso, acesse o console do seu site e execute:
SingleSignOnRecord.destroy_all
Antes de fazer isso, você precisa ter certeza de que não está definindo require_activation como true no payload do SSO. Se esse parâmetro estiver definido, os usuários não serão encontrados com base em seus endereços de e-mail na próxima vez que fizerem login no site. Em vez disso, eles receberão um erro ao tentar fazer login.
Se o parâmetro require_activation não estiver definido como true, os usuários serão encontrados com base em seus endereços de e-mail na próxima vez que fizerem login no Discourse. Um novo registro de SSO será criado para eles nesse momento. Se os endereços de e-mail de algum usuário estiverem dessincronizados entre o site do seu provedor de SSO e o Discourse, eles encontrarão problemas na próxima vez que fizerem login no Discourse. Você pode encontrar alguns detalhes sobre como corrigir esses problemas aqui: Debug and fixing common DiscourseConnect issues.
Se você for executar o comando que postei acima, certifique-se de criar um backup do banco de dados do seu site antes de executar o comando. Se algo der errado, você poderá restaurar o arquivo de backup.
Meu fórum Discourse está no plano STANDARD. É possível ter acesso ao console Rails com esse plano? Se sim, como devo proceder?
Envie um e-mail para support@discourse.org ou @support para executar o comando acima.