Acabei de encontrar isso em um fórum que administro. Passos para reproduzir:
Crie um novo grupo como administrador
Defina a visibilidade para “proprietários do grupo”
Crie o grupo
Volte para /g
O grupo não aparecerá
Se você verificar o console usando Group.find_by(name: <nome>), ele retorna corretamente. Alterar a visibilidade para “Proprietários do grupo e equipe” faz com que a visibilidade seja retornada.
A menos que isso seja intencional, minha suposição é de que até mesmo administradores deveriam ver grupos nesse nível de visibilidade (embora moderadores não).
Não percebi esse comportamento até fazer a atualização para a versão 2.4.0.beta2 ontem.
Não consigo reproduzir isso, @justin. Testei localmente e em uma instância hospedada na DO, e também tentei criar um grupo a partir de duas contas de administrador diferentes. Em todos os casos, os administradores veem todos os grupos.
Estranho – vou ter que tentar fazer isso em uma instalação limpa. Posso confirmar o problema em uma instância de produção que tenho. Vou tentar atualizá-la e ver o que acontece.
Testei em uma instalação limpa e obtive os mesmos resultados que você, @pmusaraj. Acho que é um plugin que estou usando. Se descobrir o que está acontecendo, volto a dar um retorno.
Você também está usando plugins? Quais (focando naqueles que o Discourse não cria e não envia por padrão)… ou você está dizendo que isso é uma nova regressão, @justin?
Olá, acabei de alterar a visibilidade de um grupo de “Proprietários do grupo” para “Proprietários e membros do grupo” e ele ficou visível novamente. Gostaria de saber se há algo estranho no código da configuração de visibilidade de um grupo quando ela é restrita a “Proprietários do grupo”?
@outofthebox Você por acaso tem o plugin de chat Babble instalado? Parece ser uma regressão relacionada a isso depois que eu o removi da minha instância. Desinstalar esse plugin e reconstruir trouxe de volta a visibilidade do grupo.
Ótima descoberta, @justin. Dei uma olhada rápida no código-fonte do Babble e parece haver um conflito com minhas atualizações nos grupos do núcleo. O Babble adiciona uma regra hardcoded para visibility_level: 4, que agora entra em conflito com o grupo owners no núcleo.
Espero que @gdpelican possa ter tempo para dar uma olhada.
Ok, então mergulhei um pouco mais fundo nessa questão.
Parece que o babble atribuiu seu próprio visibility_level para uso próprio e pegou a próxima constante não utilizada (4).
Algumas semanas atrás, o código principal do Discourse também adicionou um novo visibility_level e pegou a próxima constante não utilizada, que também era 4. Isso causou o uso duplicado dessa constante.
Portanto, uma correção consistiria em duas partes:
alterar o visibility_level usado pelo babble. Isso seria fácil. Se quiséssemos fazer isso de forma muito organizada, cada plugin registraria seu próprio BASE_VISIBILITY_LEVEL para evitar conflitos futuros. Mas, por enquanto, poderíamos simplesmente escolher algo (por exemplo, 1001).
alterar os grupos com visibility_level 4 para a nova constante — mas apenas os grupos que eram usados pelo babble.
Essa consulta selecionaria os grupos corretos, @gdpelican?
UPDATE groups
SET visibility_level = 1001
WHERE id IN (
SELECT g.id
FROM topics t
LEFT JOIN topic_allowed_groups tag ON tag.topic_id = t.id
LEFT JOIN groups g ON g.id = tag.group_id
WHERE t.archetype='chat');
Oi, desculpe. Vou dar uma olhada nisso nos próximos dias, mas seu esboço geral da correção está perfeito. O backport será a parte complicada; vou examinar mais de perto em breve.