Como funciona a visibilidade de grupos automáticos?

Estou um pouco confuso sobre como funciona a visibilidade dos grupos automáticos. Neste momento, estou falando apenas do diretório /groups.

O que estou vendo em uma instalação bastante recente da versão 2.7.0.beta4 é:

  • Se um usuário com privilégios de administrador ou moderador acessar /groups, ele verá todos os 8 grupos automáticos (admins, moderators, staff, trust_level_[0-4]).
  • Se um usuário que não é administrador nem moderador (independentemente do nível de confiança) acessar /groups, ele verá apenas o grupo moderators.

No entanto, todos esses grupos possuem as mesmas configurações de visibilidade padrão:

  • Quem pode ver este grupo? Usuários logados
  • Quem pode ver os membros deste grupo? Todos

É assim que deveria funcionar? Ou há algum problema no tratamento dos parâmetros de Visibilidade para esses grupos?

5 curtidas

Há um comentário no código que explica o que está acontecendo: “esconder grupos automáticos de todos os não staff para despoluir a página”. Isso ocorre aqui: discourse/app/controllers/groups_controller.rb at main · discourse/discourse · GitHub.

O que o código está fazendo é sobrescrever as configurações de visibilidade de grupo para grupos automáticos quando a página de grupos é visualizada por usuários não staff. Apenas o grupo de moderadores será exibido.

Sem relação com o problema, mas quando tentei onebox o link do Github que postei acima, o código foi exibido no onebox sem qualquer formatação na pré-visualização:

3 curtidas

Bem, isso explica. E tenho certeza de que o código foi escrito com as melhores intenções, mas está quebrado porque:

  1. Talvez eu queira que outros grupos automáticos (além de Moderadores) sejam visíveis.
  2. A interface de gerenciamento para grupos automáticos permite que eu defina a visibilidade de grupos automáticos não moderadores, mas essa configuração é ignorada.

Seria muito fácil simplesmente excluir esse bloco de código (e o erro tipográfico fofo que sobreviveu nos últimos 6 anos).

A coisa complicada, se alguém achasse que fosse necessário, seria mudar a configuração de visibilidade atual para grupos automáticos para "Proprietários do grupo", para que esses grupos não apareçam inadvertidamente para todas as instalações que estão acostumadas a eles serem forçados a serem invisíveis. Não sei se o Discourse tem algum tipo de mecanismo para fazer tais alterações durante uma atualização — mas é o tipo de coisa que se precisa fazer durante alterações de esquema, então deve haver algo.

Além disso: esse comportamento de “vamos apenas ocultar os grupos automáticos no catálogo de Grupos, apesar da configuração de visibilidade” é ruim porque obscurece os outros aspectos de visibility_level que ainda são significativos. Por exemplo:

  • O Administrador X testa as configurações de visibilidade e percebe que usuários não-membros não conseguem ver trust_level_0 no catálogo de Grupos, não importa o quê.
  • Então… o Administrador X deixa visibility_level e member_visibility_level definidos como “Todos”, já que essas configurações não parecem ter nenhum efeito.
  • O Usuário Anônimo Z navega até /groups/trust_level_0 e obtém uma lista de todos os usuários no site.

Talvez o Administrador X se importe, talvez não, mas de qualquer forma o Administrador X ficaria surpreso que isso fosse possível.

Fatos Divertidos Irrelevantes Que Eu Não Sabia Até Agora

Distribuição de usuários do meta.discourse por nível de confiança:

Nível # usuários
TL0 45.942
TL1 29.226
TL2 3.620
TL3 124
TL4 102

Olá mdoggydog :slight_smile:

Alguns pontos parecem válidos para mim, como:

O que é confuso.

Convido você a criar um tópico Feature com suas sugestões :slight_smile:

Feito!

2 curtidas

Conversa continuada em: Respect the visibility settings of all automatic groups