Usuários não-staff podem aplicar tags exclusivas para staff

Atualizei nosso site ontem e acabei notando que um usuário não membro da equipe aplicou nossa tag ‘destaque’ em sua postagem. Isso não deveria ser possível, pois a tag é definida como exclusiva para a equipe. Quando assumi a identidade dele, confirmei que era possível acessar as tags restritas ao criar uma postagem. Tentei reproduzir o problema aqui no meta, mas acho que as tags não estão disponíveis para usuários comuns?

Tentei reproduzir o problema no meu site de desenvolvimento local, mas até agora não consegui. Você sabe se o problema ocorre em todas as categorias do seu site ou apenas em uma categoria específica onde usuários não da equipe podem adicionar tags de equipe? Qualquer dica sobre como reproduzir o problema seria útil.

Ok, vou me aprofundar para ver o que está acontecendo aqui e retorno para você. Pode levar um pouco de tempo, no entanto.

Ok, testei com um usuário TL-0 e um TL-1 no modo de segurança e consigo acessar a tag de equipe para todas as categorias do nosso fórum. O mesmo vale para as outras tags da nossa lista exclusiva para equipe. Também redefini as permissões do grupo de tags exclusivas para ‘tags podem ser usadas por todos’ e depois de volta para ‘apenas os seguintes grupos podem usá-las’, mas isso não fez diferença. Há mais alguma coisa que eu possa testar?

Você tem outros grupos de tags definidos, ou a captura de tela acima é o único grupo no seu site? Os usuários com os quais você testou isso são membros de outros grupos?

É possível criar vários grupos de tags com regras contraditórias. Se um usuário tiver permissão para usar uma tag em qualquer grupo de tags, isso anulará as regras de qualquer outro grupo que diga que ele não pode usá-la.

Estes são todos os grupos que utilizo; o teste que executei foi com um usuário básico que não é membro de nenhum grupo.

Tags comuns: disponíveis para todos

Eventos: podem ser usados apenas na categoria Eventos:

Quando você diz ‘acessar’, você quer dizer que pode adicioná-las aos tópicos, ou que pode visualizá-las e clicar nelas, etc?

As tags do seu grupo de tags ‘Staff Tags’ (ba-tips, cant-reproduce, featured, etc.) só podem ser adicionadas aos tópicos por usuários pertencentes ao grupo staff, mas são visíveis para todos. Isso significa que qualquer pessoa pode ver essas tags no topo dos tópicos, clicar na tag para ver outros tópicos marcados com ela, etc.

Se um usuário TL0 conseguir adicionar uma tag de ‘Staff Tags’ (por exemplo, ‘ba-tips’) a um tópico, isso é um problema. Recriei as tags/grupos de tags conforme suas capturas de tela na minha instância local do Discourse (limitando as tags em cada grupo às três primeiras em cada uma das capturas de tela acima), e meus usuários TL0/TL1 não conseguem adicionar ‘ba-tips’ a um tópico pelo botão ‘Novo Tópico’ ou criando um tópico e depois editando-o. Você consegue adicionar as tags por meio de um método/caminho de interface diferente?

Obrigado pela sua resposta, Jamie. Desculpe se não fui específico o suficiente. Acabei de atualizar para a versão mais recente e executei o teste novamente, com o mesmo resultado. Os passos para reproduzir o problema são:

  1. Faça login como um usuário TL0 ou TL1
  2. Alterne para o modo seguro e desative tudo
  3. Selecione qualquer categoria
  4. Crie um novo tópico
  5. Selecione a tag Destaque, que é restrita à equipe.
  6. Clique em ‘criar tópico’
  7. A postagem é criada e a tag Destaque é adicionada

Acabei de ver algo mais que pode estar relacionado: não consigo mais acessar rotas tag.json, como esta:

Topics tagged featured

Atualização: ops, esqueça, parece que /tags/ foi renomeado para /tag/, o que quebrou algumas de nossas automações.

Infelizmente, ainda estou com dificuldades para criar um caso de teste para esse problema. Aqui estão as etapas que segui:

  1. Criei um novo site no commit: 6490fac881
  2. Criei o usuário administrador: jamie.wilson
  3. Ativei a Configuração do Site: tagging enabled
  4. Criei as seguintes tags:
    360-renders
    add-ons
    advertisement
    conference
    contest
    meetup
    no-ads
    promotion-offered
    ba-tips
    cant-reproduce
    featured
  5. Criei os grupos de tags, conforme as capturas de tela fornecidas (com no máximo 3 tags por grupo, para fins de depuração)
  6. Criei a categoria ‘Events’, com o valor ‘Events’ em ‘Restringir esses grupos de tags a esta categoria’
  7. O usuário administrador criou um tópico na categoria ‘Site Feedback’ com a tag ‘ba-tips’ do grupo staff.
  8. Saí da conta do usuário administrador
  9. Criei um novo usuário (ativado via link por e-mail): normal.user
  10. Como normal.user, criei um novo tópico em Uncategorized ou Site Feedback. Tags disponíveis: 360-renders, add-ons, advertisement

  1. Criei um novo tópico em Events. Tags disponíveis: conference, contest, meetup

(não mostrado)

  1. O usuário administrador pode adicionar tags restritas à postagem do normal.user:

  1. O usuário administrador pode ver todas as três tags:

  1. O normal.user pode ver apenas duas tags:

DiscourseTagging.permitted_tag_names(Guardian.new(User.find_by_username('normal.user')))
["360-renders", "add-ons", "advertisement", "conference", "contest", "meetup"]
DiscourseTagging.hidden_tag_names(Guardian.new(User.find_by_username('normal.user')))
["no-ads", "promotion-offered"]

Talvez alguém mais consiga reproduzir o problema? No momento, não estou conseguindo.

Acredito que encontrei o problema: #featured estava presente tanto na lista restrita à equipe quanto na nossa lista de ‘tags comuns’. Não tenho certeza de como ele acabou ali; vou verificar nossas permissões de equipe para ver se eles o criaram de alguma forma. Desculpe por fazer você perder seu tempo, mas agradeço muito pelo seu apoio! :pray:

Sem problemas! Fico feliz que a causa raiz tenha sido identificada e que agora todos possamos sentir um pouco mais de confiança de que o novo recurso está funcionando conforme o esperado.

Espero que ele se mostre útil para você e seu site agora que os problemas de configuração foram corrigidos. Nos avise como fica para você.