Ceci est un sujet complémentaire de Granular group-based permissions for anonymous and logged in users , et est en cours de rédaction (WIP).
Il reste encore quelques endroits dans les différentes bases de code du cœur (core), des plugins et des 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 diverses méthodes de gardien (guardian) 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 de 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 séparée en interne à cet effet.
Problèmes de haute priorité
Problème soulevé par Moin :
- Cœur (Core)
- À propos (About) -
apply_excluded_groupsest uniquement utilisé pour masquer les modérateurs et administrateurs sélectionnés des groupes dansabout_page_hidden_groups. Il n’a pas de sens que des groupes pseudo comme0|4|5soient utilisés ici, 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 regardons que les groupes visibles, cela devrait être une vérification côté serveur commeevaluatepour les ACL.
- À propos (About) -
Plugins du cœur (Core plugins)
- Discourse Templates
-
can_use_private_templates?référence toujourseveryonedirectement et n’utilise pas le raccourci_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-adminregardecurrentUser.groupscôté client, ce qui n’est pas fiable, effectuez plutôt une vérification côté serveur pourcontent_localization_allowed_groups
-
- Discourse Assign. 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
user.groupset de la vérificationeveryonedansshowStatusToUser. Changeractivity_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 de l’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 - Changer la valeur par défaut de
resenha_allowed_groupsde0à4|5
- Supprimer le contournement
Thèmes
Composants
Problèmes de basse priorité
- Cœur (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 de l’administrateur, ajouter1au paramètrewhispers_allowed_groupsen tant quemandatory_values- Ajouter
0|4auxdisallowed_groupspour le paramètre du siteallow_solved_in_groups, cela ne concerne que les MP (messages privés) - Ajouter
0|4|5auxdisallowed_groupspourabout_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 du cœur (Core plugins)
- Chat
- Note pour
everyone_allowedà divers endroits dans la logique de chat auto-join/auto-leave etusers_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 dans FIX: Handle new pseudogroups in message bus group IDs - Pull Request #42610 - discourse/discourse - GitHub MessageBus peut maintenant gérer les groupes pseudo correctement
- Note pour
- Assign
- Se débarrasser de
add_model_callback(Group)dans plugin.rb, c’est du code obsolète/irrélevant qui regarde les noms de groupes au lieu des IDs
- Se débarrasser de
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_groupspour le paramètre et se débarrasser de la vérification spéciale de l’administrateur 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_groupspour le paramètre et se débarrasser de la vérification spéciale de l’administrateur 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
À définir (TBA)