Ich bin etwas verwirrt darüber, wie die Sichtbarkeit von automatischen Gruppen funktioniert. Derzeit spreche ich nur über das Verzeichnis /groups.
Hier ist das, was ich bei einer relativ frischen Installation von 2.7.0.beta4 sehe:
Wenn ein Benutzer mit Admin- oder Moderator-Rechten /groups aufruft, sieht er alle 8 automatischen Gruppen (admins, moderators, staff, trust_level_[0-4]).
Wenn ein Benutzer ohne Admin- oder Moderator-Rechte /groups aufruft (unabhängig vom Trust-Level), sieht er nur die Gruppe moderators.
Alle diese Gruppen haben jedoch dieselben, standardmäßigen Sichtbarkeitseinstellungen:
Wer kann diese Gruppe sehen? Eingeloggte Benutzer
Wer kann die Mitglieder dieser Gruppe sehen? Alle
Ist das beabsichtigt? Oder liegt ein Fehler bei der Verarbeitung der Sichtbarkeitsparameter für diese Gruppen vor?
Im Code gibt es einen Kommentar, der erklärt, was dort passiert: „Automatische Gruppen für alle Nicht-Mitarbeiter ausblenden, um die Seite aufzuräumen.
Nun, das erklärt es. Und ich bin sicher, dass der Code mit den besten Absichten geschrieben wurde, aber er ist fehlerhaft, weil:
Vielleicht möchte ich, dass andere automatische Gruppen (außer Moderatoren) sichtbar sind.
Die Verwaltungsoberfläche für automatische Gruppen ermöglicht es mir, die Sichtbarkeit von automatischen Gruppen, die keine Moderatoren sind, festzulegen, aber diese Einstellung wird ignoriert.
Es wäre ziemlich einfach, diesen Codeblock (und den niedlichen typografischen Fehler, der die letzten 6 Jahre überlebt hat) einfach zu löschen.
Das knifflige daran wäre, wenn man es für notwendig hielte, die aktuelle Sichtbarkeitseinstellung für automatische Gruppen auf „Gruppenbesitzer“ zu ändern, damit diese Gruppen nicht versehentlich für alle Installationen angezeigt werden, die daran gewöhnt sind, dass sie gezwungen sind, unsichtbar zu sein. Ich weiß nicht, ob Discourse eine Art Mechanismus hat, um solche Änderungen während eines Upgrades vorzunehmen – aber es ist die Art von Dingen, die man bei Schemaänderungen benötigt, also muss es etwas geben.
Außerdem: Dieses Verhalten „verstecken wir einfach die automatischen Gruppen im Gruppenkatalog, obwohl die Sichtbarkeitseinstellung gilt“ ist schlecht, da es die anderen Aspekte von visibility_level verschleiert, die immer noch von Bedeutung sind. Zum Beispiel:
Administrator X probiert die Sichtbarkeitseinstellungen aus und stellt fest, dass Nicht-Mitarbeiter trust_level_0 im Gruppenkatalog überhaupt nicht sehen können, egal was sie tun.
Also… Administrator X lässt visibility_level und member_visibility_level auf „Jeder“ gesetzt, da diese Einstellungen keine Auswirkungen zu haben scheinen.
Anonymer Benutzer Z navigiert zu /groups/trust_level_0 und holt sich eine Liste aller Benutzer auf der Website.
Vielleicht kümmert sich Administrator X darum, vielleicht auch nicht, aber in jedem Fall wäre Administrator X überrascht, dass dies möglich war.
Irrelevante Fun Facts, die ich vorher nicht wusste
Verteilung der meta.discourse-Benutzer nach Vertrauensstufe: