È corretto aggiornare external_id sul database di discourse?

Sto cercando nel forum informazioni sull’aggiornamento di external_id nel database di Discourse.

Ho trovato questo argomento interessante:

Tuttavia, ero interessato ad alcune informazioni sulle implicazioni dell’aggiornamento di external_id nel database.

Potrei semplicemente eseguire un aggiornamento SQL e impostare il nuovo external_id corretto? Ci potrebbero essere problemi nascosti? Come se l’utente avesse una sessione aperta corrente o qualcos’altro?

Ho creato gli utenti tramite SSO utilizzando un external_id che è l’ID dell’account dell’utente nel sistema esterno. (Potrei dover modellare qualcos’altro, ma sarebbe bello poter evitare di cambiare il modello del sistema esterno almeno per ora)

Il problema per me è che la persona potrebbe avere più di un account nel sistema esterno e può unire tali account in uno solo, quindi a volte, a seconda di come unisce, un nuovo external_id può arrivare per lo stesso utente/email.

Sto usando l’opzione require_activation, quindi, come ho letto nell’argomento menzionato, non posso eliminare il record e aspettare che venga ricreato.

Grazie

Sì, dovresti essere in grado di farlo, ma dovresti prima risolvere il problema reale

ad esempio, quando gli account vengono uniti, assicurati sempre che venga assegnato/utilizzato l’ID più basso.

3 Mi Piace

Sì… durante le fusioni di account esterni, rispetto l’account più vecchio… ma a volte non è quello che mi serve.

alcuni account interagiscono con il forum (tipo A, diciamo) e altri account non sono destinati a questo (tipo B).

quindi se prima creano un account di tipo B…
e in seguito creano un account di tipo A, effettuano l’accesso con esso sul forum

e in seguito fondono A e B e onorano l’account più vecchio che ha un diverso external_id

quindi sì…
ho bisogno di trovare una soluzione per la mia cosa del sistema esterno…

ma penso che imposterò un cron giornaliero che controllerà se è successo qualcosa di simile e correggerà temporaneamente gli external_id.

grazie!

In tal caso potresti o
a) sincronizzare tutti gli account con Discourse utilizzando il meccanismo di sincronizzazione SSO
b) tenere traccia di quali account sono stati utilizzati per accedere a Discourse
o
c) quando unisci, eseguire una ricerca ID esterna per determinare quale/i account sono stati utilizzati con Discourse

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