Ceci est un sujet complémentaire à Granular group-based permissions for anonymous and logged in users , et il est en cours de rédaction (WIP).
Il reste encore quelques endroits dans diverses bases de code (core, plugins et thèmes) qui référencent directement le groupe everyone (ou l’ID de groupe 0), sans tenir compte de ce changement à venir, ou sans utiliser user.in_any_groups? ou les différentes méthodes de gardien utilisées pour gérer cela.
Pour référence rapide, voici certains IDs de groupes automatiques :
0-everyone1-admins2-moderators3-staff4-anonymous_users5-logged_in_users
Ce sujet sert de lieu central pour suivre les correctifs apportés à ce système à mesure que nous approchons de la version stable. Les plugins et thèmes personnalisés pour les clients Discourse ne sont pas suivis ici ; j’aurai une liste interne séparée à cet effet.
Problèmes de haute priorité
Problème soulevé par Moin :
- Core
- À propos -
apply_excluded_groupsn’est utilisé que pour masquer les modérateurs et administrateurs sélectionnés des groupes dansabout_page_hidden_groups. Il n’a pas de sens d’utiliser des groupes pseudo comme0|4|5ici ; ils devraient être ajoutés àdisallowed_groups. Nous devons également mettre à jour la description du paramètre, car elle est trompeuse. - EditCategoryTabsController - Dans
_wouldLoseAccessdiscourse/frontend/discourse/admin/controllers/edit-category/tabs.js at 86552acfbaf816db3b9db5f761f5e9f2bd221c21 · discourse/discourse · GitHub , nous ne considérons que les groupes visibles ; cela devrait être une vérification côté serveur, commeevaluatepour les ACL.
- À propos -
Plugins Core
- Discourse Templates
-
can_use_private_templates?référence toujours directementeveryoneet n’utilise pas l’abréviation_mapsur les paramètres du site.
-
- Discourse AI
-
can_see_summary?dans les extensions de gardien n’utilise pasuser.in_any_groups?
-
can_attach?dans AiBot::Playground n’utilise pasuser.in_any_groups?
-
addTopicAdminMenuButtondansai-translation-topic-adminexaminecurrentUser.groupscôté client, ce qui n’est pas fiable ; effectuez plutôt une vérification côté serveur pourcontent_localization_allowed_groups
-
- Discourse Assign. Il y a beaucoup de problèmes ici.
- Plutôt que
user_ids_in_groupsdansAssignmentPermissions, nous devrions utiliseruser_ids_in_groups assign_allowed_on_groupsdevrait avoir0|4|5ajouté àdisallowed_groups; aucun de ces groupes n’a de sens ici, seuls les groupes concrets comptent.
- Plutôt que
Autres plugins
- Activity Pub
- Supprimer la vérification côté client de
showStatusToUsersuruser.groupset la vérification deeveryone. Modifieractivity_pub_post_status_visibility_groupspour qu’il ait4|5par défaut.
- Supprimer la vérification côté client de
- Suggested Edits
user_in_suggested_edits_group?doit utiliseruser.in_any_groups?dansGuardianExtensions. Ajouter1auxmandatory_groupsdesuggested_edits_review_groupset supprimer le cas particulier administrateur danscan_review_suggested_edits_in_topic_list- Ajouter
0|4|5auxdisallowed_groupsdesuggested_edits_review_groupsetsuggested_edits_suggest_groups; ce paramètre n’est pas vraiment destiné à être utilisé avec ces groupes pseudo
- Resenha
- Supprimer le contournement
untargetable_group_idsdanspublic_room_message_bus_targetscar cela a été traité dans FIX: Handle new pseudogroups in message bus group IDs (#42610) · discourse/discourse@699ad46 · GitHub - Modifier la valeur par défaut de
resenha_allowed_groupsde0à4|5
- Supprimer le contournement
Thèmes
Composants
Problèmes de basse priorité
- Core
is_in_edit_topic_groupsdansTopicGuardiandevrait utiliser l’extension_mappour le paramètre du siteRoleable#whisperer?devrait utiliseruser.in_any_groups?et se débarrasser de la vérification administrateur ; ajouter1au paramètrewhispers_allowed_groupsen tant quemandatory_values- Ajouter
0|4auxdisallowed_groupsdu paramètre du siteallow_solved_in_groups; cela ne concerne que les MP - Ajouter
0|4|5auxdisallowed_groupsdeabout_page_extra_groups; cela est censé ne traiter que des groupes concrets sur la page À propos - Note dans
can_view?pourPresenceChannelindiquant que nous devons supprimer la vérificationGroup::AUTO_GROUPS[:everyone]lorsque ce changement à venir passera àPermanent
Plugins Core
- Chat
- Note pour
everyone_alloweddans divers endroits de la logique d’auto-connexion/auto-déconnexion du chat et deusers_with_unreadspour supprimer la vérification:everyonelorsque ce changement à venir passera àPermanent - Mettre à jour
chat_allowed_group_idsdansChat::Publisherpour supprimer le groupe pseudo spécial, car, comme indiqué dans FIX: Handle new pseudogroups in message bus group IDs - Pull Request #42610 - discourse/discourse - GitHub , MessageBus peut désormais gérer correctement les groupes pseudo
- Note pour
- Assign
- Supprimer
add_model_callback(Group)dans plugin.rb, c’est du code mort/irrélevant qui examine les noms de groupes au lieu des IDs
- Supprimer
Autres plugins
- Code Review
- La vérification
can_review_code?surcode_review_allowed_groupsn’utilise pas l’extension_mapet n’utilise pasuser.in_any_groups?. Ajouter1auxmandatory_groupsdu paramètre et supprimer la vérification administrateur spéciale dans le gardien. Ajouter0|4|5auxdisallowed_groups.
- La vérification
- Needs Love
- La vérification
can_needs_love?surneeds_love_allowed_groupsn’utilise pas l’extension_mapet n’utilise pasuser.in_any_groups?. Ajouter1auxmandatory_groupsdu paramètre et supprimer la vérification administrateur spéciale dans le gardien. Ajouter0|4|5auxdisallowed_groups.
- La vérification
- Staff Alias
- La vérification
can_post_as_staff_aliassurstaff_alias_allowed_groupsn’utilise pas l’extension_mapet n’utilise pasuser.in_any_groups?. Ajouter0|4|5auxdisallowed_groups
- La vérification
Thèmes
Composants
Prochaines étapes pour la migration
- Migrer le modèle
AiAgentallowed_group_ids