Je suis un peu confus quant au fonctionnement de la visibilité des groupes automatiques. Pour l’instant, je ne parle que du répertoire /groups.
Voici ce que j’observe sur une installation assez récente de 2.7.0.beta4 :
Si un utilisateur disposant des privilèges d’administrateur ou de modérateur consulte /groups, il voit les 8 groupes automatiques (admins, modérateurs, staff, trust_level_[0-4]).
Si un utilisateur non administrateur et non modérateur (peu importe son niveau de confiance) consulte /groups, il ne voit que le groupe modérateurs.
Pourtant, tous ces groupes ont les mêmes paramètres de visibilité par défaut :
Qui peut voir ce groupe ? Utilisateurs connectés
Qui peut voir les membres de ce groupe ? Tout le monde
Est-ce que cela fonctionne comme prévu ? Ou y a-t-il un problème dans la gestion des paramètres de visibilité pour ces groupes ?
Ce que fait le code, c’est remplacer les paramètres de visibilité des groupes automatiques lorsque la page des groupes est consultée par des utilisateurs non personnels. Seul le groupe des modérateurs sera affiché.
Sans rapport avec le problème, mais lorsque j’ai essayé de créer une onebox pour le lien GitHub que j’ai posté ci-dessus, le code s’est affiché dans la onebox sans aucune mise en forme dans l’aperçu :
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 :
Peut-être que je veux que d’autres groupes automatiques (outre les Modérateurs) soient visibles.
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 :