Houve um pseudogrupo historicamente confuso chamado @everyone em nossa base de código, que pode ser usado para:
- Configurações do site do tipo
group_list - Permissões de categoria
- Grupos de tags
Em alguns casos, as pessoas interpretam @everyone como “todos os usuários anônimos e todos os usuários logados”, enquanto outras o interpretam como apenas “todos os usuários logados”. Na realidade, para configurações do site, na maioria dos casos, isso significa apenas “todos os usuários logados”.
A situação fica ainda mais confusa devido ao fato de que esse grupo @everyone pode ser usado em configurações do site onde não faz sentido que “todos os usuários anônimos e logados” tenham acesso ao recurso, como em pm_tags_allowed_for_groups.
Isso também gera confusão do ponto de vista de controle de recursos (feature flagging) e experiência do desenvolvedor, já que, para algumas mudanças futuras ou outras configurações, podemos realmente querer habilitá-las para “todos os usuários anônimos e logados”.
Solução
Estamos introduzindo dois pseudogrupos automáticos separados:
anonymous (ID 4)- Representa usuários anônimos que visitam seu site sem contalogged_in_users (ID 5)- Representa todos os usuários logados no seu site, com efeito semelhante ao grupo automáticotrust_level_0, mas mais específico
Esses grupos já foram introduzidos, mas só entrarão em vigor quando a mudança futura granular_anonymous_and_logged_in_groups_permissions for habilitada no seu site.
Quando a mudança futura for habilitada, qualquer configuração com everyone como grupo selecionado será automaticamente traduzida para o ID logged_in_users, de modo que nenhum dado na tabela de configurações do site será alterado ao ativar a mudança futura. Quando a mudança futura se tornar permanente, realizaremos uma migração de dados para todas as configurações de grupo para efetuar essa alteração.
Além disso, marcamos anonymous como um disallowed_group (grupo não permitido) para várias configurações do site onde não faz sentido, por exemplo, personal_message_enabled_groups.
E quanto às permissões de tags e categorias?
Essas permissões permanecerão inalteradas, pois o conceito de “everyone” nelas é diferente de algumas formas e não depende do grupo automático subjacente.
