Benutzer-Flair bleibt bestehen, nachdem der Benutzer aus der Gruppe entfernt wurde

Wenn ich einen Benutzer aus einer Gruppe entferne, sollte ich dann erwarten, dass das Gruppen-Flair sofort vom Avatar des Benutzers entfernt wird?

Ich habe gerade einen Benutzer aus einer Gruppe entfernt.
Sie hat keine primäre Gruppe ausgewählt.
image

In ihren Einstellungen hat sie kein Flair ausgewählt.

Ich habe meinen Browser aktualisiert und mich ab- und wieder angemeldet.

Muss sie sich ab- und wieder anmelden, damit das Flair entfernt wird? Habe ich irgendwo einen Schritt übersehen?

6 „Gefällt mir“

Die meisten Jobs werden unter forum.example.com/sidekiq/scheduler angezeigt. Wenn du beispielsweise eine Abfrage für Abzeichen geändert hast, kannst du entweder einen Tag warten, bis der BadgeGrant-Job ausgeführt wird, oder du kannst ihn manuell auslösen, indem du auf die Schaltfläche „Trigger

1 „Gefällt mir“

Ja, außer in einem winzigen Sonderfall bei einem anonymen Benutzer, der die alten Flairs auf einigen Seiten für 1 Minute weiterhin sehen wird.

Wir werden das untersuchen und beheben.

3 „Gefällt mir“

Benutzer-Flair bleibt auch dann erhalten, wenn die primäre Gruppe in eine neue primäre Gruppe mit zugeordnetem Flair geändert wird.

1 „Gefällt mir“

Dies ist hier nun behoben

Hast du die Hauptgruppe über die Massenaktion „Alle zur Hauptgruppe machen

4 „Gefällt mir“

Nein, ich habe die Hauptgruppe eines einzelnen Benutzers auf der Administrationsseite des Benutzers geändert.

1 „Gefällt mir“

Ich möchte Sie darauf hinweisen, dass das Problem in 2.8.0.beta4 (https://github.com/discourse/discourse/commits/1a65f0bfbbd32887a3c90fdaa894487c21f8467a) weiterhin besteht.

Wir haben noch nicht auf den neuesten Commit aktualisiert, da keine Änderungen vorliegen, die diesen Fehler beheben.
In unserem Fall bleiben die Benutzer-Flairs unverändert, wenn wir Gruppen über Discourse Connect SSO aktualisieren. Wir sehen, dass der Benutzer nicht mehr in der Gruppe ist, aber das Flair bleibt bestehen.

Hoffentlich hilft das bei der Identifizierung und Behebung des Fehlers.

Diese Korrektur wirkt nicht rückwirkend. Du musst die Flairs für ältere Benutzer manuell aktualisieren. Wie viele Benutzer sind bei dir davon betroffen?

Wow. Nun, ich kenne die Schätzungen nicht. Basierend auf unseren Datenflüssen könnten täglich Dutzende bis Hunderte von Nutzern über SSO spezifischen Gruppen beitreten oder diese verlassen. Kann ich Nutzer mit veralteten (nicht mit Gruppen verknüpften) Flairs zählen?

Und wie kann man überhaupt die Flairs anderer Benutzer bearbeiten? Ich konnte keine solche Option im Admin-Bereich finden. Nicht, dass ich vorhatte, so viele Benutzer einzeln zu aktualisieren, um das Erbe dieses Fehlers zu beseitigen.

Übrigens: Das Entfernen des Flairs in den Gruppeneinstellungen und das Hochladen eines neuen Flair-Bildes hilft nicht. Benutzer außerhalb dieser Gruppe behalten weiterhin das Gruppenflair :frowning:

Ich wollte nur kurz nachfragen, ob jemand weiß, was man bei diesem Problem tun soll.


Entschuldigt, dass ich diesen Post so oft nach oben bringe, aber dieser Fehler verursacht in unserer Community wirklich große Probleme :frowning:
@vinothkannans, hast du irgendwelche Vorschläge, wie wir mit den Auswirkungen für uns umgehen sollen?

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

Der obige Befehl kann Ihr Problem beheben. Führen Sie dies in Ihrer Rails-Konsole aus. Bitte erstellen Sie vor der Ausführung ein Backup.

Vielen Dank für Ihre Antwort.
Verstehe ich das richtig, dass wir aufgrund der Auswirkungen dieses Fehlers Abfragen wie diese täglich oder in einem anderen Rhythmus durchführen sollten? Die Sache ist die, dass unsere Benutzergruppe täglich aktualisiert wird + jedes Mal, wenn sich der Abonnementstatus des Benutzers auf der Hauptwebsite ändert. Alles erfolgt über SSO.

Nein, Sie müssen dies nicht regelmäßig ausführen. Das Problem wurde im oben genannten Commit behoben. Dieser Befehl wird die Flairs für die zuvor betroffenen Benutzer korrigieren.

Ich werde morgen nach einer alternativen Lösung suchen.

1 „Gefällt mir“

Danke, ich werde geduldig auf Ihre Untersuchungsergebnisse warten, bevor ich zu Rails-Abfragen übergehe. Bitte lassen Sie mich wissen, ob ich Ihnen bei diesem Problem behilflich sein kann.

@kinetiksoft Der folgende Rails-Code sollte das Problem für alle Mitglieder in jeder Gruppe beheben. Er entfernt das Gruppen-Flair von Benutzern, wenn sie nicht mehr zu dieser Flair-Gruppe gehören.

Hinweis: Du musst dieses Skript nicht regelmäßig ausführen. Es dient als einmalige Korrektur für die betroffenen alten Benutzer. Erstelle zur Sicherheit vor der Ausführung ein Backup.

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)

Hey @vinothkannans,

Vielen Dank! Ich gebe dir Bescheid, sobald wir die Abfrage ausgeführt haben, und werde in den kommenden Tagen einige Updates liefern, um zu prüfen, ob nachher keine Inkonsistenzen zwischen Flairs und Gruppenbeziehungen bestehen.

1 „Gefällt mir“

Außerdem habe ich in dem oben genannten Commit eine weitere Korrektur vorgenommen. Stelle sicher, dass du deine Site aktualisierst, sobald der Commit gemerged wurde.

1 „Gefällt mir“

Großartig, sicher, ich werde mir die kommenden Commits im Upgrade-Bereich ansehen.
Sollten wir mit der oben genannten SQL-Abfrage warten oder können wir diese bereits ausführen, ohne dass der Commit in unserer Discourse-Instanz gemergt wurde?

Sie können den Befehl nach dem Upgrade ausführen.

2 „Gefällt mir“