Indirizzi email in conflitto, che danno agli amministratori più potere per risolvere i problemi

Uno dei nostri utenti ha due account Discourse: uno non più in uso e uno nuovo, al quale non riesce ad accedere. Il motivo sembra essere che il nuovo account, presso il nostro provider CAS SSO, ha lo stesso indirizzo email impostato per il vecchio account sul nostro forum.

Ho fatto delle prove con il mio account di prova, tentando di disattivarlo ed eliminando il record SSO. Tuttavia, ciò sembra impedire nuovi accessi per quell’account, poiché il record esistente non corrisponde più al payload SSO e ora l’indirizzo email risulta in conflitto.

Ho anche provato a modificare l’indirizzo email sull’account Discourse non utilizzato dell’utente, in modo che potesse accedere con quell’email sul nuovo account. Tuttavia, è necessaria una conferma via email. Ho configurato un alias email sul nostro server SMTP per poter intercettare un indirizzo a caso. Tuttavia, seguendo il link, devo accedere come l’utente tramite SSO. Il problema è che dovrei riattivare l’account dell’utente, impostare una nuova password, collegare l’account al nostro database dei membri e creare un’iscrizione falsa presso il nostro provider SSO. È certamente possibile farlo, ma ho la sensazione di essere intrappolato in una ragnatela complicata nel tentativo di risolvere il problema dell’account di questo utente.

Intervenire direttamente sul database apportando le modifiche tramite alcune query SQL è qualcosa che ho già fatto in passato, ma è rischioso e preferirei evitare questo approccio se possibile.

Se non rompe Discourse, mi piacerebbe molto avere una funzione che mi permetta di eliminare un indirizzo email su un account disattivato, invece di limitarmi a impostare l’email come non confermata.

Se ci sono altri modi per gestire questo problema, fatecelo sapere. Grazie!

Perché non unire i vecchi utenti in quello nuovo?

Penso che tu stia utilizzando l’implementazione di SSO di Discourse e che tu stia impostando il parametro SSO require_activation su true nel payload SSO. Se è così, consulta questo argomento per i dettagli su come risolvere il problema: Debug and fixing common DiscourseConnect issues. È più sicuro eseguire i comandi della console Rails forniti in quell’argomento piuttosto che aggiornare direttamente il database con query SQL.

Unire i due account, come indicato nel post sopra, è probabilmente un buon approccio, ma dopo averlo fatto potresti dover apportare alcune modifiche al record SSO.

C’è anche questo che ho appena trovato tramite la ricerca unisci account utente. Questa opzione è ancora disponibile cliccando sull’utente nell’elenco utenti attivi (Dashboard Amministratore) e scorrendo fino in fondo per vedere i 3 pulsanti mostrati di seguito.


Discourse 2.5.0.beta3 Release Notes

Unisci utenti tramite l’interfaccia

All’inizio del 2018 abbiamo aggiunto il supporto per l’unione di due account utente. Per farlo era necessario l’accesso SSH al server, poiché il supporto per l’unione è stato aggiunto come task rake.

Ora gli utenti possono essere uniti da qualsiasi amministratore! Visita la pagina di amministrazione degli utenti e seleziona “Trasferisci ed elimina” in fondo alla pagina.image

Inserisci il nome utente in cui desideri che l’account venga unito e clicca su “Trasferisci ed elimina @nomeutente” per avviare il processo di unione.

Grazie per i consigli e l’aiuto in merito. Proverò la prossima settimana su alcuni account di prova e ti farò sapere se incontro problemi significativi. Grazie : )

Ok, quindi tutto si è risolto. Quando ho unito gli account, Discourse ha mantenuto le credenziali SSO dell’account di destinazione/merged/non eliminato, mentre l’altro account è stato eliminato.

Grazie per il tuo aiuto in merito. : )