Ceci est un sujet complémentaire de Granular group-based permissions for anonymous and logged in users et est en cours d’élaboration (WIP).
Il reste encore quelques endroits dans diverses bases de code pour le cœur, les plugins et les thèmes qui référencent directement everyone ou l’identifiant de groupe (0) sans tenir compte de ce changement à venir, ou sans utiliser user.in_any_groups? ou les diverses méthodes guardian utilisées pour gérer cela.
Pour référence rapide, certains identifiants de groupes automatiques :
0-everyone1-admins2-moderators3-staff4-anonymous_users5-logged_in_users
Ce sujet sert de lieu central pour suivre les correctifs liés à ce système alors que nous approchons de la stabilité. 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 pour cela.
Problèmes de haute priorité
Problème soulevé par Moin :
- Cœur
- À propos -
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 pseudogroupes 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, ce devrait être une vérification côté serveur commeevaluatepour les ACL
- À propos -
Plugins du cœur
- Modèles Discourse
-
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 guardian 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. Pas mal 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érificationeveryone. Modifieractivity_pub_post_status_visibility_groupspour qu’il soit par défaut4|5.
- Supprimer la vérification côté client de
- Suggestions de modifications
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 pseudogroupes
- Live
- Supprimer le contournement
untargetable_group_idsdanspublic_room_message_bus_targetspuisque 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é
- Cœur
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_groupspour le paramètre du siteallow_solved_in_groups, cela ne concerne que les MP - Ajouter
0|4|5auxdisallowed_groupspourabout_page_extra_groups, cela est censé traiter uniquement les groupes concrets sur la page à propos - Notez dans
can_view?pourPresenceChannelque nous devons supprimer la vérificationGroup::AUTO_GROUPS[:everyone]lorsque ce changement à venir passera àPermanent
Plugins du cœur
- Chat
- Notez pour
everyone_allowedà divers endroits dans la logique d’auto-rejoindre/auto-quitter du chat etusers_with_unreadsde supprimer la vérification:everyonelorsque ce changement à venir passera àPermanent - Mettre à jour
chat_allowed_group_idsdansChat::Publisherpour supprimer le pseudogroupe spécial, car à FIX: Handle new pseudogroups in message bus group IDs - Pull Request #42610 - discourse/discourse - GitHub MessageBus peut désormais gérer correctement les pseudogroupes
- Notez pour
- Assign
- Se débarrasser de
add_model_callback(Group)dans plugin.rb, c’est du code mort/irrélevant qui regarde les noms de groupes au lieu des identifiants
- 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 administrateur spéciale dans guardian. 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 administrateur spéciale dans guardian. 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
allowed_group_idsdu modèleAiAgent