Ceci est un sujet complémentaire à Granular group-based permissions for anonymous and logged in users , et est en cours de développement (WIP).
Il reste encore quelques endroits dans divers bases de code pour le noyau, les plugins et les thèmes qui référencent directement everyone ou l’ID de groupe (0) directement, sans tenir compte de ce changement à venir, ou sans utiliser user.in_any_groups? ou diverses méthodes de guardian utilisées pour gérer cela.
Pour référence rapide, certains ID de groupe automatique :
0-everyone1-admins2-moderators3-staff4-anonymous_users5-logged_in_users
Ce sujet sert de point 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 pour cela.
Problèmes à haute priorité
Problème soulevé par Moin :
- Noyau
- À propos -
apply_excluded_groupsest uniquement utilisé pour masquer les modérateurs & admins sélectionnés des groupes dansabout_page_hidden_groups. Il n’a pas de sens que des pseudogroupes comme0|4|5soient utilisées ici, elles devraient être ajoutées àdisallowed_groups. Nous devons également mettre à jour la description du paramètre car elle est trompeuse.
- À propos -
Plugins du noyau
- Discourse Templates
-
can_use_private_templates?référence toujourseveryonedirectement et n’utilise pas l’abréviation_mapsur les paramètres du site.
-
- Discourse AI
-
can_see_summary?dans les extensions de guardian n’utilise pasuser.in_any_groups?
-
can_attach?dans AiBot::Playground n’utilise pasuser.in_any_groups?
-
addTopicAdminMenuButtondansai-translation-topic-adminregardecurrentUser.groupssur le client, ce qui n’est pas fiable, faites une vérification côté serveur pourcontent_localization_allowed_groupsà la place
-
- 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 ceux-ci n’a de sens ici, ce sont seulement les groupes concrets qui comptent.
- Plutôt que
Autres plugins
- Activity Pub
- Supprimer la vérification clientside de
showStatusToUserdeuser.groupset de la vérificationeveryone. Changeractivity_pub_post_status_visibility_groupspour qu’il ait par défaut4|5.
- Supprimer la vérification clientside de
- Suggested Edits
user_in_suggested_edits_group?doit utiliseruser.in_any_groups?dansGuardianExtensions. Ajouter1àsuggested_edits_review_groupsmandatory_groupset supprimer le cas spécial admin danscan_review_suggested_edits_in_topic_list- Ajouter
0|4|5àsuggested_edits_review_groupsetsuggested_edits_suggest_groupsdisallowed_groups, ce paramètre n’est pas vraiment destiné à être utilisé avec ces pseudogroupes
- Resenha
- 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 - Changer la valeur par défaut de
resenha_allowed_groupsde0à4|5
- Supprimer le contournement
Thèmes
Composants
Problèmes à basse priorité
- Noyau
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 admin, ajouter1au paramètrewhispers_allowed_groupscommemandatory_values- Ajouter
0|4àdisallowed_groupspour le paramètre du siteallow_solved_in_groups, cela ne concerne que les MP - Ajouter
0|4|5àdisallowed_groupspourabout_page_extra_groups, c’est censé ne concerner que les groupes concrets sur la page À propos - Note dans
can_view?pourPresenceChannelque nous devons supprimer la vérificationGroup::AUTO_GROUPS[:everyone]lorsque ce changement à venir passe àPermanent
Plugins du noyau
- Chat
- Note pour
everyone_alloweddans divers endroits dans la logique de jointure/quitture automatique du chat etusers_with_unreadspour supprimer la vérification:everyonelorsque ce changement à venir passe àPermanent - Mettre à jour
chat_allowed_group_idsdansChat::Publisherpour supprimer le pseudogroupe spécial, comme dans FIX: Handle new pseudogroups in message bus group IDs - Pull Request #42610 - discourse/discourse - GitHub MessageBus peut maintenant gérer les pseudogroupes correctement
- Note 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 groupe au lieu des ID
- 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?. Ajouter1àmandatory_groupspour le paramètre et se débarrasser de la vérification admin spéciale dans guardian. Ajouter0|4|5àdisallowed_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?. Ajouter1àmandatory_groupspour le paramètre et se débarrasser de la vérification admin spéciale dans guardian. Ajouter0|4|5àdisallowed_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|5àdisallowed_groups
- La vérification
Thèmes
Composants
Prochaines étapes pour la migration
À déterminer