Il flair dell'utente rimane dopo la rimozione dell'utente dal gruppo

Se rimuovo un utente da un gruppo, devo aspettarmi che il flair del gruppo venga rimosso immediatamente dall’avatar dell’utente?

Ho appena rimosso un utente da un gruppo.
Lei non ha nessun gruppo principale selezionato.
image

Nelle sue preferenze, non ha selezionato alcun flair.

Ho aggiornato il browser e ho effettuato il logout e il login di nuovo.

Deve anche lei effettuare il logout e il login prima che il flair venga rimosso? Sto trascurando qualche passaggio da qualche parte?

6 Mi Piace

La maggior parte dei lavori è visualizzata in forum.example.com/sidekiq/scheduler. Ad esempio, se hai modificato una query per i badge, puoi attendere un giorno affinché venga eseguito il lavoro BadgeGrant, oppure puoi accelerare il processo premendo manualmente il pulsante Trigger. Non so quale di questi lavori aggiorni i flari.

1 Mi Piace

Sì, tranne in un piccolo caso limite: un utente anonimo potrebbe vedere il vecchio distintivo su alcune pagine per 1 minuto.

Procederemo con un’indagine e una correzione.

3 Mi Piace

Il flair dell’utente rimane anche quando il gruppo principale viene modificato in un nuovo gruppo principale associato a un flair.

1 Mi Piace

Questo è stato ora risolto qui

Hai modificato il gruppo principale utilizzando l’azione in blocco “Rendi tutti principali” nella pagina del singolo gruppo?

4 Mi Piace

No, ho modificato il gruppo principale di un singolo utente nella pagina di amministrazione dell’utente.

1 Mi Piace

Vorrei informarti che il problema persiste ancora nella versione 2.8.0.beta4 (Commits · discourse/discourse · GitHub)

Non abbiamo ancora aggiornato all’ultimo commit poiché non sono state apportate modifiche per correggere questo bug.
Nel nostro caso, i flari degli utenti rimangono invariati quando aggiorniamo i gruppi tramite Discourse Connect SSO. Vediamo che l’utente non è più presente nel gruppo, ma il flaro rimane.

Speriamo che questo aiuti a identificare e risolvere il bug.

Questa correzione non funzionerà retroattivamente. Devi aggiornare manualmente i flari per gli utenti vecchi. Posso sapere quanti utenti sono interessati da questo problema per te?

Wow. Beh, non conosco le stime. In base ai nostri flussi di dati, potrebbero esserci dozzine o centinaia di utenti che lasciano o si uniscono a gruppi specifici tramite SSO ogni giorno.
Comunque, posso contare gli utenti con badge non aggiornati (non collegati ai gruppi)?

E come si fa a modificare i flair degli altri utenti? Non sono riuscito a trovare un’opzione del genere nel pannello di amministrazione. Non sto dicendo che intendo aggiornare uno per uno così tanti utenti per eliminare l’eredità di questo bug.

Comunque, rimuovere il flair dalle impostazioni del gruppo e caricare un’altra immagine del flair non aiuta. Gli utenti che non fanno parte di questo gruppo continuano a mantenere il flair del gruppo :frowning:

Sto solo controllando se qualcuno sa cosa fare con questo problema


Scusa per aver ripreso questo post così tante volte, ma questo bug sta davvero creando problemi alla nostra comunità :frowning:
@vinothkannans, hai qualche suggerimento su come procedere riguardo agli effetti che sta avendo su di noi?

User.where(flair_group_id: REPLACE_WITH_GROUP_ID).where.not(primary_group_id: REPLACE_WITH_GROUP_ID).update_all(flair_group_id: nil)

Il comando sopra può risolvere il tuo problema. Esegui questo nella tua rails console. Esegui un backup prima di procedere.

Grazie per la risposta.
Ho capito correttamente che, a causa degli effetti di questo bug, dovremmo eseguire query come queste con cadenza giornaliera o a intervalli diversi? Il fatto è che il nostro gruppo di utenti viene aggiornato ogni giorno e ogni volta che lo stato dell’abbonamento dell’utente cambia sul sito principale. Tutto viene gestito tramite SSO.

No, non è necessario eseguirle regolarmente. Ora il problema è stato risolto nel commit sopra indicato. Questo comando correggerà i flari per gli utenti interessati in precedenza.

Domani controllerò una soluzione alternativa.

1 Mi Piace

Grazie, aspetterò pazientemente i risultati della tua indagine prima di ricorrere alle query di Rails.
Fammi sapere se posso esserti d’aiuto su questa questione.

@kinetiksoft il codice Rails sottostante dovrebbe risolvere il problema per tutti i membri di ogni gruppo. Rimuoverà il flair del gruppo dagli utenti se non appartengono più a quel gruppo di flair.

Nota: non è necessario eseguire questo script regolarmente. È una correzione una tantum per quegli utenti interessati vecchi. Esegui un backup come precauzione prima di eseguirlo.

User.joins("LEFT OUTER JOIN group_users ON group_users.user_id = users.id AND group_users.group_id = users.flair_group_id").where(group_users: { id: nil }).where.not(flair_group_id: nil).update_all(flair_group_id: nil)

Ciao @vinothkannans,

Grazie! Ti farò sapere non appena eseguirò la query e fornirò alcuni aggiornamenti nei prossimi giorni per verificare che non vi siano incongruenze tra le relazioni tra i flairs e i gruppi.

1 Mi Piace

Inoltre, ho inviato un’altra correzione nel commit sopra. Assicurati di aggiornare il tuo sito dopo che è stato unito.

1 Mi Piace

Perfetto, certo, darò un’occhiata ai prossimi commit nella sezione di aggiornamento.
Dovremmo aspettare la query SQL menzionata sopra o possiamo procedere con essa senza attendere che il commit venga unito alla nostra istanza di Discourse?

Puoi eseguire il comando dopo l’aggiornamento.

2 Mi Piace