Das Entfernen eines Benutzers aus einer Gruppe mit einem Trust Level Effekt berechnet die automatischen Gruppenmitgliedschaften des Benutzers nicht neu.

Ich habe das Thema Group trust level gelesen, wo gesagt wird:

sowie dieses ältere Thema, Should losing group membership unlock trust level?

Wo die beschriebene Situation weitgehend meiner Erfahrung entspricht:

Aber was ich in meiner eigenen Testinstanz von Discourse festgestellt habe, ist Folgendes…

Bei allen Vertrauensniveau-Einstellungen auf Standard habe ich ein TL1-Konto (U) und eine Gruppe namens tl3, die Trust_Level_3 gewährt.

  1. Ausgangsbedingungen
  • Vertrauensniveau: 1: Basisbenutzer Entsperrt
  • Automatische Gruppen: trust_level_0, trust_level_1
  • Benutzerdefinierte Gruppen: Keine
  1. Füge U zu tl3 hinzu
  • Vertrauensniveau: 3: Regelmäßig Entsperrt
  • Automatische Gruppen: trust_level_0, trust_level_1, trust_level_2, trust_level_3
  • Benutzerdefinierte Gruppen: tl3
  1. Entferne U aus tl3
  • Vertrauensniveau: 2: Mitglied Entsperrt
  • Automatische Gruppen: trust_level_0, trust_level_1, trust_level_2, trust_level_3
  • Benutzerdefinierte Gruppen: Keine
  • HINWEIS: Trotz eines Vertrauensniveaus von 2 ist der Benutzer immer noch in der automatischen Gruppe trust_level_3. In dem Verständnis, dass ein Benutzer nicht ohne ein gesperrtes Vertrauensniveau auf TL1 herabgestuft werden kann, ist das erwartete Ergebnis hier, dass der Benutzer sofort die Mitgliedschaft in der automatischen Gruppe trust_level_2 verlieren sollte.
  1. Sperre das Vertrauensniveau von U
  • Vertrauensniveau: 2: Mitglied Gesperrt
  • Automatische Gruppen: trust_level_0, trust_level_1, trust_level_2, trust_level_3
  • Benutzerdefinierte Gruppen: Keine
  • HINWEIS: Trotz eines Vertrauensniveaus von 2: Mitglied ist der Benutzer immer noch in der automatischen Gruppe trust_level_3.
  1. Entsperre das Vertrauensniveau von U
  • Vertrauensniveau: 1: Basis Entsperrt
  • Automatische Gruppen: trust_level_0, trust_level_1
  • Benutzerdefinierte Gruppen: Keine

Wenn also ein Benutzer aus einer Gruppe abgemeldet wird, wird das Vertrauensniveau automatisch und sofort neu berechnet, aber die automatische Gruppenzugehörigkeit wird nicht neu berechnet, es sei denn, das Vertrauensniveau des Benutzers erfährt ein Entsperrungsereignis.

Meine Annahme ist, dass die automatischen Gruppenzugehörigkeiten systemweit für alle Benutzer einmal täglich berechnet werden und die automatischen Gruppenzugehörigkeiten zu diesem Zeitpunkt korrigiert werden. Aber es fühlt sich so an, als ob automatische Gruppenzugehörigkeiten entweder beim Entfernen aus einer Gruppe mit einem Vertrauensniveau-Effekt oder sofort bei jeder Änderung des Vertrauensniveaus ausgelöst werden sollten, nicht nur bei einer Erhöhung des Vertrauensniveaus.

Der Backend-API-Aufruf an,

POST {{site}}/admin/users/{{userId}}/groups

aktualisiert die automatischen Gruppenzugehörigkeiten, aber

DELETE {{site}}/admin/users/{{usedId}}/groups/{{groupId}}

tut dies nicht, was sich wie ein Fehler anfühlt, insbesondere wenn Sie automatische Vertrauensniveau-Gruppen für die Zugriffskontrolle verwenden.

Und zur Vollständigkeit, offensichtlich Aufrufe an,

PUT {{site}}/admin/users/{{userId}}/trust_level

die aufgerufen werden, wenn das Vertrauensniveau eines Benutzers in der Admin-Oberfläche manuell geändert wird, berechnen die automatischen Gruppenzugehörigkeiten sofort neu, wie erwartet.

2 „Gefällt mir“

Ja, das grundlegende Dev-XP-Ding hier ist, dass wir dieses Herumfummeln mit automatischen Gruppen verbieten und Sie auf den Weg zwingen sollten, nur PUT {{site}}/admin/users/{{userId}}/trust_level zu verwenden, um Dinge zu übertragen. Geben Sie einen 422 oder etwas Ähnliches zurück, wenn Leute versuchen, Endpunkte zu verwenden, um Leute manuell zu den Gruppen hinzuzufügen oder zu entfernen.

Das Zurückrollen der Vertrauensstufe sollte immer von hier aus erfolgen:

Denn das unterstützt auch Sperren, was entscheidend ist.

Ich verstehe das.

Ich möchte nur klarstellen, dass die gesamten API-Sachen nur die Aufzeichnung des XHR-Streams beim Ausführen von Aktionen bei Gruppenmitgliedschaften über die Benutzeroberfläche für Gruppenmitgliedschaften waren. Ich führe diese nicht tatsächlich als API-Aufrufe aus, es sind nur die API-Aufrufe, die bei der Verwendung der Benutzeroberfläche erfolgen.

Mein Gedanke ist also, dass, wenn es eine Gruppe mit einem TL3-Effekt gibt, das Klicken auf diese Schaltfläche,

sie sofort aus der Gruppe trust_level_3 entfernen sollte, wenn sie die Anforderungen für Vertrauensstufe 3 nicht anderweitig erfüllen oder diese Vertrauensstufe gesperrt haben.

Der vorgesehene Anwendungsfall hier ist, dass beispielsweise eine Gruppe von TL4-Benutzern als Besitzer einer Gruppe mit einem TL3-Effekt festgelegt werden kann, damit sie Personen manuell auf TL3 befördern können.

Der Beförderungsaspekt funktioniert, aber dieselben Benutzer, die jemanden aus der TL3-Effektgruppe entfernen, haben nicht den sofortigen Effekt, den betroffenen Benutzer aus trust_level_3 zu entfernen.

Ich verstehe vollkommen, dass dies eine sehr ungewöhnliche Verwendung der Funktion ist.

Es erscheint einfach unvereinbar, dass ein Benutzer seine Vertrauensstufe von 3 auf 2 geändert haben könnte und in der Gruppe trust_level_3 verbleibt, bis zum nächsten Neuberechnungsereignis.

2 „Gefällt mir“