Comment fonctionne la visibilité des groupes automatiques ?

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 « J'aime »

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 « J'aime »

Eh bien, cela l’explique. Et je suis sûr que ce code a été écrit avec les meilleures intentions, mais il est défectueux car :

  1. Peut-être que je veux que d’autres groupes automatiques (outre les Modérateurs) soient visibles.
  2. L’interface de gestion des groupes automatiques me permet de définir la visibilité des groupes automatiques non-Modérateurs, mais ce paramètre est ignoré.

Il serait assez facile de supprimer simplement ce bloc de code (et l’erreur typographique mignonne qui a survécu ces 6 dernières années).

La chose délicate, si l’on pensait que c’était nécessaire, serait de changer le paramètre de visibilité actuel pour les groupes automatiques en « Propriétaires du groupe » afin que ces groupes n’apparaissent pas par inadvertance pour toutes les installations qui sont habituées à ce qu’ils soient forcés d’être invisibles. Je ne sais pas si Discourse dispose d’un mécanisme pour apporter de tels changements lors d’une mise à niveau — mais c’est le genre de chose dont on a besoin lors des changements de schéma, il doit donc y avoir quelque chose.

De plus : ce comportement « cachons simplement les groupes automatiques dans le catalogue de groupes malgré le paramètre de visibilité » est mauvais car il occulte les autres aspects de visibility_level qui ont encore un sens. Par exemple :

  • L’administrateur X essaie les paramètres de visibilité et réalise que les utilisateurs non-membres du personnel ne peuvent pas voir trust_level_0 dans le catalogue de groupes, quoi qu’il arrive.
  • Donc… l’administrateur X laisse visibility_level et member_visibility_level réglés sur « Tout le monde », puisque ces paramètres ne semblent avoir aucun effet.
  • L’utilisateur anonyme Z navigue vers /groups/trust_level_0 et récupère une liste de tous les utilisateurs sur le site.

Peut-être que l’administrateur X s’en soucie, peut-être pas, mais dans tous les cas, l’administrateur X serait surpris que ce soit possible.

Faits amusants non pertinents que j'ignorais jusqu'à maintenant

Répartition des utilisateurs de meta.discourse par niveau de confiance :

Niveau # d’utilisateurs
TL0 45 942
TL1 29 226
TL2 3 620
TL3 124
TL4 102

Salut mdoggydog :slight_smile:

Certains points me semblent valides, comme :

Ce qui est déroutant.

Je vous invite à créer un sujet Feature avec vos suggestions :slight_smile:

Fait !

2 « J'aime »

Conversation continued in: Respect the visibility settings of all automatic groups