Este es un tema complementario a Granular group-based permissions for anonymous and logged in users y está en desarrollo (WIP).
Todavía hay algunos lugares en varias bases de código del núcleo, los plugins y los temas que hacen referencia directa al ID de grupo everyone o (0), sin tener en cuenta este cambio inminente o sin utilizar user.in_any_groups? ni los diversos métodos de guardian utilizados para manejar esto.
Para referencia rápida, algunos IDs de grupos automáticos:
0-everyone1-admins2-moderators3-staff4-anonymous_users5-logged_in_users
Este tema sirve como un lugar central para hacer un seguimiento de las correcciones de este sistema a medida que nos acercamos a la versión estable. Los plugins y temas personalizados para clientes de Discourse no se rastrean aquí; tendré una lista separada interna para esto.
Problemas de alta prioridad
Problema planteado por Moin:
- Núcleo
- Acerca de -
apply_excluded_groupssolo se utiliza para ocultar moderadores y administradores seleccionados de los grupos enabout_page_hidden_groups. No tiene sentido que se utilicen pseudogrupos como0|4|5aquí, deberían añadirse adisallowed_groups. También necesitamos actualizar la descripción de la configuración, ya que es engañosa.
- Acerca de -
Plugins del núcleo
- Discourse Templates
-
can_use_private_templates?todavía hace referencia directa aeveryoney no utiliza el atajo_mapen la configuración del sitio.
-
- Discourse AI
-
can_see_summary?en extensiones de guardian no utilizauser.in_any_groups?
-
can_attach?en AiBot::Playground no utilizauser.in_any_groups?
-
addTopicAdminMenuButtonenai-translation-topic-adminmiracurrentUser.groupsen el cliente, lo cual no es fiable, haz una comprobación del lado del servidor paracontent_localization_allowed_groupsen su lugar
-
- Discourse Assign. Bastantes problemas aquí.
- En lugar de
user_ids_in_groupsenAssignmentPermissions, deberíamos utilizaruser_ids_in_groups assign_allowed_on_groupsdebería tener0|4|5añadido adisallowed_groups, ninguno de estos tiene sentido aquí, solo importan los grupos concretos.
- En lugar de
Otros plugins
- Activity Pub
- Eliminar la comprobación del lado del cliente de
showStatusToUserdeuser.groupsy la comprobación deeveryone. Cambiaractivity_pub_post_status_visibility_groupspara que por defecto sea4|5.
- Eliminar la comprobación del lado del cliente de
- Suggested Edits
user_in_suggested_edits_group?necesita utilizaruser.in_any_groups?enGuardianExtensions. Añadir1asuggested_edits_review_groupsmandatory_groupsy eliminar el caso especial de administrador encan_review_suggested_edits_in_topic_list- Añadir
0|4|5asuggested_edits_review_groupsysuggested_edits_suggest_groupsdisallowed_groups, esta configuración no está realmente destinada a utilizarse con estos pseudogrupos
- Resenha
- Eliminar la solución alternativa
untargetable_group_idsenpublic_room_message_bus_targetsya que esto se abordó en FIX: Handle new pseudogroups in message bus group IDs (#42610) · discourse/discourse@699ad46 · GitHub - Cambiar el valor predeterminado de
resenha_allowed_groupsde0a4|5
- Eliminar la solución alternativa
Temas
Componentes
Problemas de baja prioridad
- Núcleo
is_in_edit_topic_groupsenTopicGuardiandebería utilizar la extensión_mappara la configuración del sitioRoleable#whisperer?debería utilizaruser.in_any_groups?y deshacerse de la comprobación de administrador, añadir1a la configuraciónwhispers_allowed_groupscomomandatory_values- Añadir
0|4adisallowed_groupspara la configuración del sitioallow_solved_in_groups, esto trata solo con mensajes privados - Añadir
0|4|5adisallowed_groupsparaabout_page_extra_groups, esto está destinado a tratar solo con grupos concretos en la página Acerca de - Nota en
can_view?paraPresenceChannelque necesitamos eliminar la comprobación deGroup::AUTO_GROUPS[:everyone]cuando este cambio inminente pase aPermanent
Plugins del núcleo
- Chat
- Nota para
everyone_alloweden varios lugares en la lógica de unirse/salir automáticamente del chat yusers_with_unreadspara eliminar la comprobación de:everyonecuando este cambio inminente pase aPermanent - Actualizar
chat_allowed_group_idsenChat::Publisherpara eliminar el pseudogrupo especial, como en FIX: Handle new pseudogroups in message bus group IDs - Pull Request #42610 - discourse/discourse - GitHub MessageBus ahora puede manejar los pseudogrupos correctamente
- Nota para
- Assign
- Deshacerse de
add_model_callback(Group)en plugin.rb, es código irrelevante/muerto que mira nombres de grupos en lugar de IDs
- Deshacerse de
Otros plugins
- Code Review
- La comprobación
can_review_code?encode_review_allowed_groupsno utiliza la extensión_mapy no utilizauser.in_any_groups?. Añadir1amandatory_groupspara la configuración y deshacerse de la comprobación especial de administrador en guardian. Añadir0|4|5adisallowed_groups.
- La comprobación
- Needs Love
- La comprobación
can_needs_love?enneeds_love_allowed_groupsno utiliza la extensión_mapy no utilizauser.in_any_groups?. Añadir1amandatory_groupspara la configuración y deshacerse de la comprobación especial de administrador en guardian. Añadir0|4|5adisallowed_groups.
- La comprobación
- Staff Alias
- La comprobación
can_post_as_staff_aliasenstaff_alias_allowed_groupsno utiliza la extensión_mapy no utilizauser.in_any_groups?. Añadir0|4|5adisallowed_groups
- La comprobación
Temas
Componentes
Próximos pasos para la migración
Por determinar