Wie funktioniert die Sichtbarkeit von automatischen Gruppen?

I’m a bit confused as to how the visibility of automatic groups works. At this point, I am just talking about the /groups directory.
Here is what I am seeing in a pretty fresh install of 2.7.0.beta4:

  • If an user with admin or moderator bits looks at /groups, they see all 8 automatic groups (admins, moderators, staff, trust_level_[0-4]).
  • If a non-admin, non-moderator user (no matter the trust_level) looks at /groups, they see only the moderators group.

But, all of these groups have the same, default Visibility settings:

  • Who can see this group? Logged on users
  • Who can see this group’s members? Everyone

Is this how it is supposed to work? Or is there something wrong with the handling of the Visibility parameters for these groups?

5 „Gefällt mir“

There is a comment in the code that explains what is going on: “hide automatic groups from all non stuff to de-clutter page.” That happens here: discourse/app/controllers/groups_controller.rb at main · discourse/discourse · GitHub.

What the code is doing is overriding the group visibility settings for automatic groups when the groups page is viewed by a non-staff users. Only the moderators group will be displayed.

Unrelated to the issue, but when I tried to onebox the Github link that I posted above, the code was displayed in the onebox without any formatting in the preview:

3 „Gefällt mir“

Nun, das erklärt es. Und ich bin sicher, dass der Code mit den besten Absichten geschrieben wurde, aber er ist fehlerhaft, weil:

  1. Vielleicht möchte ich, dass andere automatische Gruppen (außer Moderatoren) sichtbar sind.
  2. 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:

Stufe # Benutzer
TL0 45.942
TL1 29.226
TL2 3.620
TL3 124
TL4 102

Hallo mdoggydog :slight_smile:

Einige Punkte scheinen mir gültig, wie zum Beispiel:

Was verwirrend ist.

Ich lade Sie ein, ein #feature-Thema mit Ihren Vorschlägen zu erstellen :slight_smile:

Erledigt!

2 „Gefällt mir“

Konversation fortgesetzt in: Respect the visibility settings of all automatic groups