¿Está bien actualizar external_id en la base de datos de discourse?

He estado buscando en el foro información sobre la actualización de external_id en la base de datos de Discourse.

Encontré este tema interesante:

Aún así, estaba interesado en algunas ideas sobre las implicaciones de actualizar el external_id en la base de datos.

¿Podría simplemente emitir una actualización SQL y establecer el nuevo external_id correcto? ¿Puede eso traer algún problema oculto? ¿Como si el usuario tuviera una sesión abierta actual o algo más?

Tengo los usuarios creados a través de SSO usando un external_id que es el ID de cuenta del usuario en el sistema externo. (Puede que necesite modelar algo más, pero sería genial poder evitar cambiar el modelo del sistema externo al menos por ahora)

El problema para mí es que la persona puede tener más de una cuenta en el sistema externo y puede fusionar esas cuentas en una, por lo que a veces, dependiendo de cómo fusione, puede surgir un nuevo external_id para el mismo usuario/correo electrónico.

Estoy usando la opción require_activation, así que, como he leído en el tema mencionado, no puedo eliminar el registro y esperar a que se recree.

Gracias

Sí, deberías poder hacerlo, pero primero deberías solucionar el problema real

por ejemplo, cuando se fusionan cuentas, asegúrate siempre de que se asigne/utilice el ID más bajo.

3 Me gusta

Sí… durante las fusiones de cuentas externas, respeto la cuenta más antigua… pero a veces eso no es lo que necesito.

Algunas cuentas interactúan con el foro (tipo A, digamos) y otras cuentas no están destinadas a eso (tipo B).

así que si primero crean una cuenta tipo B…
y luego crean una cuenta tipo A, inician sesión con ella en el foro

y luego fusionan A y B y honran la cuenta más antigua que tiene un external_id diferente

así que sí…
Necesito encontrar una solución para mi cosa del sistema externo…

pero creo que configuraré un cron diario que verifique si ha sucedido algo de esto y corrija los external_ids por el momento.

¡Gracias!

En ese caso, podrías:

a) Sincronizar todas las cuentas con Discourse utilizando el mecanismo de sincronización SSO.
b) Hacer un seguimiento de qué cuentas se han utilizado para iniciar sesión en Discourse.
o
c) Al fusionar, realizar una búsqueda de ID externo para determinar qué cuenta(s) se han utilizado con Discourse.

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