É ok atualizar external_id no banco de dados do discourse?

Tenho pesquisado no fórum por informações sobre a atualização do external_id no banco de dados do Discourse.

Encontrei este tópico interessante:

Ainda assim, estava interessado em algumas percepções sobre as implicações de atualizar o external_id no banco de dados.

Posso simplesmente emitir uma atualização SQL e definir o novo external_id correto? Isso pode trazer algum problema oculto? Como se o usuário tivesse uma sessão aberta atual ou algo mais?

Criei os usuários através do SSO usando um external_id que é o ID da conta do usuário no sistema externo. (Talvez eu precise modelar algo mais, mas seria legal poder evitar mudar o modelo do sistema externo, pelo menos por enquanto)

O problema para mim é que a pessoa pode ter mais de uma conta no sistema externo e pode mesclar essas contas em uma, então às vezes, dependendo de como ele mescla, um novo external_id pode vir para o mesmo usuário/email.

Estou usando a opção require_activation, então, como li no tópico mencionado, não posso excluir o registro e esperar que ele seja recriado.

Obrigado

Sim, você deve ser capaz de fazer isso, mas você deve corrigir o problema real primeiro

por exemplo, quando as contas estão sendo mescladas, sempre certifique-se de que o ID mais baixo seja atribuído / usado.

3 curtidas

Sim.. durante a mesclagem de contas externas, estou respeitando a conta mais antiga… mas às vezes não é o que eu preciso.

Algumas contas interagem com o fórum (tipo A, digamos) e outras contas não são para isso (tipo B).

Então, se eles primeiro criam uma conta do tipo B…
E depois criam uma conta do tipo A, eles fazem o SSO com ela no fórum

E depois eles mesclam A e B e honram a conta mais antiga que tem um external_id diferente

Então sim…
Preciso encontrar uma solução para a minha coisa de sistema externo…

Mas acho que vou configurar um cron diário que verifica se algo disso aconteceu e corrige os external_ids por enquanto.

Obrigado!

Nesse caso, você poderia:

a) Sincronizar todas as contas com o Discourse usando o mecanismo de sincronização SSO
b) Manter o controle de quais contas foram usadas para fazer login no Discourse
ou
c) Ao mesclar, fazer uma pesquisa de ID externo para determinar quais contas foram usadas com o Discourse

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