Solicitações de rolagem infinita após exclusão de tópico

Continuando a discussão de Permitir que membros removam tags / categorias restritas das preferências de rastreamento:

Visão Geral

Quando um usuário está visualizando ativamente um tópico que é subsequentemente excluído, a rolagem contínua (para cima ou para baixo) aciona um loop infinito de chamadas de API posts.json. Essas chamadas retornam consistentemente um erro 403 Forbidden, mas o aplicativo falha em reconhecer a exclusão ou parar de tentar carregar conteúdo inexistente, levando a atividade de rede persistente em segundo plano e a uma experiência de usuário quebrada.

Passos para Reproduzir

  1. Preparação (Usuário Admin/Moderador):
    • Faça login como um usuário com privilégios de exclusão de tópico (por exemplo, Administrador ou Moderador).
    • Crie um novo tópico com alguns posts para garantir que haja conteúdo para rolar.
    • Mantenha o URL da página deste tópico à mão.
  2. Experiência do Usuário (Usuário Regular):
    • Faça login como um usuário regular (sem privilégios de exclusão).
    • Abra uma nova aba ou janela do navegador.
    • Navegue até o tópico criado na Etapa 1.
    • Abra as ferramentas de desenvolvedor do seu navegador e vá para a aba “Network” (Rede). Limpe quaisquer solicitações existentes para uma visualização limpa.
  3. Exclusão e Interação Simultâneas:
    • Enquanto o usuário regular está na página do tópico (da Etapa 2), use a conta de Administrador/Moderador (da Etapa 1) para excluir o tópico.
    • Imediatamente após a exclusão do tópico, o usuário regular tenta rolar para cima ou para baixo na página do tópico agora excluído.
  4. Observar:
    • Na aba “Network” (Rede) do navegador do usuário regular, observe solicitações GET contínuas sendo enviadas para https://discourse-url/t/xxxxx/posts.json? (onde xxxxx é o ID do tópico excluído).
    • Note que todas essas solicitações retornam consistentemente um código de status HTTP 403 Forbidden.
    • O aplicativo não exibe nenhuma mensagem indicando que o tópico foi excluído, nem para de enviar essas solicitações de rolagem falhas.

Consequências Potenciais

  • Em minha comunidade, usamos o Cloudflare para prevenir ataques cibernéticos, e este bug fez com que alguns usuários fizessem muitas solicitações e fossem limitados pela taxa.
1 curtida

Qual é a sua versão atual do Discourse?

Houve um relatório semelhante recentemente que resultou em uma correção:

3 curtidas