Il existe dans notre base de code un pseudo-groupe historiquement confus appelé @everyone, qui peut être utilisé pour :
- Les paramètres du site de type
group_list - Les permissions des catégories
- Les groupes d’étiquettes
Dans certains cas, certaines personnes interprètent @everyone comme signifiant « tous les utilisateurs anonymes et tous les utilisateurs connectés », tandis que d’autres l’interprètent comme signifiant uniquement « tous les utilisateurs connectés ». En réalité, pour les paramètres du site, cela signifie généralement « tous les utilisateurs connectés ».
La situation est encore plus confuse du fait que ce groupe @everyone peut être utilisé dans des paramètres du site où il n’a aucun sens que « tous les utilisateurs anonymes et connectés » aient accès à la fonctionnalité, comme pm_tags_allowed_for_groups.
Cela crée également de la confusion du point de vue des indicateurs de fonctionnalités et de l’expérience des développeurs, car pour certaines modifications à venir ou d’autres paramètres, nous pourrions réellement vouloir les activer pour « tous les utilisateurs anonymes et connectés ».
Solution
Nous introduisons deux nouveaux pseudo-groupes automatiques distincts :
anonymous (ID 4)- Représente les utilisateurs anonymes visitant votre site sans comptelogged_in_users (ID 5)- Représente tous les utilisateurs connectés à votre site, avec un effet similaire au groupe automatiquetrust_level_0, mais plus spécifique
Ces groupes ont déjà été introduits, mais ne prendront effet que lorsque la modification à venir granular_anonymous_and_logged_in_groups_permissions sera activée sur votre site.
Lorsque cette modification à venir sera activée, tout paramètre ayant everyone comme groupe sélectionné sera automatiquement traduit vers l’ID logged_in_users. Ainsi, aucune donnée dans la table des paramètres du site ne sera modifiée lors de l’activation de cette modification à venir. Lorsque cette modification deviendra permanente, nous effectuerons une migration des données pour tous les paramètres de groupe afin d’appliquer ce changement.
De plus, nous avons marqué anonymous comme disallowed_group pour plusieurs paramètres du site où cela n’a pas de sens, par exemple personal_message_enabled_groups.
Qu’en est-il des permissions des étiquettes et des catégories ?
Ces permissions resteront inchangées, car leur notion de « everyone » diffère à plusieurs égards et ne dépend pas du groupe automatique sous-jacent.

