Este é um tópico complementar a Granular group-based permissions for anonymous and logged in users , e está em desenvolvimento (WIP).
Ainda existem alguns locais em várias bases de código do núcleo, plugins e temas que referenciam diretamente everyone ou o ID do grupo (0) diretamente, sem levar em conta esta mudança iminente, ou sem usar user.in_any_groups? ou vários métodos de guardião usados para lidar com isso.
Para referência rápida, alguns IDs de grupo automático:
0-everyone1-admins2-moderators3-staff4-anonymous_users5-logged_in_users
Este tópico serve como um local central para acompanhar as correções deste sistema à medida que nos aproximamos da versão estável. Plugins e temas personalizados para clientes do Discourse não são rastreados aqui; terei uma lista separada internamente para isso.
Problemas de alta prioridade
Problema levantado por Moin:
- Núcleo
- Sobre -
apply_excluded_groupsé usado apenas para ocultar moderadores e administradores selecionados dos grupos emabout_page_hidden_groups. Não faz sentido usar pseudogrupos como0|4|5aqui; eles devem ser adicionados adisallowed_groups. Precisamos atualizar a descrição da configuração também, pois é enganosa.
- Sobre -
Plugins do núcleo
- Discourse Templates
-
can_use_private_templates?ainda referenciaeveryonediretamente e não usa o atalho_mapnas configurações do site.
-
- Discourse AI
-
can_see_summary?nas extensões de guardião não usauser.in_any_groups?
-
can_attach?em AiBot::Playground não usauser.in_any_groups?
-
addTopicAdminMenuButtonemai-translation-topic-adminolhando paracurrentUser.groupsno cliente, o que não é confiável; faça uma verificação no lado do servidor paracontent_localization_allowed_groupsem vez disso
-
- Discourse Assign. Bastantes problemas aqui.
- Em vez de
user_ids_in_groupsemAssignmentPermissions, devemos usaruser_ids_in_groups assign_allowed_on_groupsdeve ter0|4|5adicionado adisallowed_groups; nenhum deles faz sentido aqui, apenas grupos concretos importam.
- Em vez de
Outros plugins
- Activity Pub
- Remover a verificação cliente de
user.groupseeveryoneemshowStatusToUser. Alteraractivity_pub_post_status_visibility_groupspara padrão4|5.
- Remover a verificação cliente de
- Suggested Edits
user_in_suggested_edits_group?precisa usaruser.in_any_groups?emGuardianExtensions. Adicionar1asuggested_edits_review_groupsmandatory_groupse remover o caso especial de administrador emcan_review_suggested_edits_in_topic_list- Adicionar
0|4|5asuggested_edits_review_groupsesuggested_edits_suggest_groupsdisallowed_groups; esta configuração não foi realmente projetada para ser usada com esses pseudogrupos
- Resenha
- Remover a solução alternativa
untargetable_group_idsempublic_room_message_bus_targetsjá que isso foi abordado em FIX: Handle new pseudogroups in message bus group IDs (#42610) · discourse/discourse@699ad46 · GitHub - Alterar o padrão de
resenha_allowed_groupsde0para4|5
- Remover a solução alternativa
Temas
Componentes
Problemas de baixa prioridade
- Núcleo
is_in_edit_topic_groupsemTopicGuardiandeve usar a extensão_mappara a configuração do siteRoleable#whisperer?deve usaruser.in_any_groups?e eliminar a verificação de administrador, adicionar1à configuraçãowhispers_allowed_groupscomomandatory_values- Adicionar
0|4adisallowed_groupspara a configuração do siteallow_solved_in_groups, isso lida apenas com MPs - Adicionar
0|4|5adisallowed_groupsparaabout_page_extra_groups, isso deve lidar apenas com grupos concretos na página Sobre - Observação em
can_view?paraPresenceChannelde que precisamos remover a verificaçãoGroup::AUTO_GROUPS[:everyone]quando esta mudança iminente se tornarPermanent
Plugins do núcleo
- Chat
- Observação para
everyone_allowedem vários lugares na lógica de auto-entrada/auto-saída do chat eusers_with_unreadspara remover a verificação:everyonequando esta mudança iminente se tornarPermanent - Atualizar
chat_allowed_group_idsemChat::Publisherpara remover pseudogrupos especiais, como em FIX: Handle new pseudogroups in message bus group IDs - Pull Request #42610 - discourse/discourse - GitHub MessageBus agora pode lidar com os pseudogrupos corretamente
- Observação para
- Assign
- Eliminar
add_model_callback(Group)em plugin.rb, é código irrelevante/obsoleto que olha para nomes de grupos em vez de IDs
- Eliminar
Outros plugins
- Code Review
- A verificação
can_review_code?emcode_review_allowed_groupsnão usa a extensão_mape não usauser.in_any_groups?. Adicionar1amandatory_groupspara a configuração e eliminar a verificação especial de administrador no guardião. Adicionar0|4|5adisallowed_groups.
- A verificação
- Needs Love
- A verificação
can_needs_love?emneeds_love_allowed_groupsnão usa a extensão_mape não usauser.in_any_groups?. Adicionar1amandatory_groupspara a configuração e eliminar a verificação especial de administrador no guardião. Adicionar0|4|5adisallowed_groups.
- A verificação
- Staff Alias
- A verificação
can_post_as_staff_aliasemstaff_alias_allowed_groupsnão usa a extensão_mape não usauser.in_any_groups?. Adicionar0|4|5adisallowed_groups
- A verificação
Temas
Componentes
Próximas etapas para migração
A definir