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
- 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.
- 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.
- 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.
- 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?(ondexxxxxé 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.
- Na aba “Network” (Rede) do navegador do usuário regular, observe solicitações GET contínuas sendo enviadas para
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.