Nuovi utenti Wordpress che si connettono a utenti Discourse esistenti

Ciao @jord8on, il modo in cui funziona il matching dal lato discourse è che prima tenta di trovare una corrispondenza con l’ID esterno (che nel tuo caso ora punta a utenti diversi poiché hai modificato il tuo database di Wordpress) e poi tenta di trovare una corrispondenza utilizzando l’indirizzo email. Ci sono buone ragioni per usare prima l’ID. L’email non è un buon identificatore decentralizzato.

Quindi, quello che devi fare è eliminare i record di single sign-on in discourse creati quando stavi usando il tuo vecchio database di Wordpress. Puoi usare una data e ora per identificarli, ad esempio, faresti qualcosa del genere sulla tua istanza di discourse

./launcher enter app
rails c
SingleSignOnRecord.where("created_at < ?", 1.month.ago) // verifica se questo corrisponde alle tue aspettative
SingleSignOnRecord.where("created_at < ?", 1.month.ago).delete_all

I vecchi utenti importati nel nuovo db verranno abbinati sulla base dell’email ai loro account discourse esistenti (poiché il loro nuovo ID di Wordpress non corrisponderà ad alcun record sso).

Rimuoverei anche tutti i dati di discourse_username su Wordpress e lascerei che vengano risincronizzati automaticamente tramite il webhook utente. Dovrai eseguire questo (forse usando WP CLI), che elimina tutte le voci per il campo meta discourse_username.

delete_metadata( 'user', 0, 'discourse_username', '', true );

Per i futuri utenti che leggeranno questo, se usi DiscourseConnect con un database di Wordpress, quindi passi a un database di Wordpress completamente nuovo senza una migrazione, avrai questo tipo di problema. Dovresti chiedere assistenza prima di apportare questo tipo di modifica.

2 Mi Piace