O tópico continua sendo excluído

Tenho um tópico no meu site que alguém (vamos chamar de X) postou e depois excluiu devido a algumas informações errôneas. Eu o reativei e pedi que X publicasse uma correção abaixo da postagem original.

Desde então, o tópico continua sendo excluído. Já o reativei duas vezes e parece estar tudo certo, mas depois de um tempo ele aparece como excluído novamente.

O que está acontecendo?

5 curtidas

É possível que o usuário em questão continue apagando? Já tive usuários que preferem apagar posts a suportar o ‘embaraço’ de se corrigirem.

1 curtida

Verifique seu log (admin/logs/staff_action_logs) para ver se o usuário está excluindo-os. O log mostrará as postagens que foram tanto editadas quanto excluídas… e por quem foram excluídas. Você também pode clicar no ícone de informações para obter mais detalhes.

Alguns usuários mudaram de ideia sobre manter uma postagem por isso e por muitas outras razões. Às vezes, é apenas uma daquelas situações em que a pessoa sente que é melhor esquecer o que ia dizer. Às vezes, você simplesmente tem que aceitar o motivo deles, mesmo que nenhum seja dado. :wink:

4 curtidas

Os usuários não podem excluir instantaneamente tópicos ou postagens, no entanto. Tudo o que podem fazer é acionar uma exclusão pendente de 24 horas, que será uma intenção pública declarada no tópico ou na postagem, assim:

(postagem retirada pelo autor, será excluída em 24 horas, a menos que seja sinalizada)

Além disso, você só pode fazer isso para tópicos se eles não tiverem respostas e o tópico tiver 1 dia de idade ou menos.

5 curtidas

Isso também acontece conosco quando um tópico é excluído pelo sistema, ou seja, 24 horas após uma postagem ser excluída pelo autor, não há como recuperá-la; mesmo que a recuperemos, ela será excluída automaticamente novamente após 30 minutos.

5 curtidas

Falei com o usuário e, pelo que entendi, ele não está excluindo isso constantemente. Na verdade, ele ficou surpreso com isso, já que foi ele quem me alertou sobre o problema inicialmente.

Veja como meus logs se apresentam:

(Obrigado @JimPas pela sugestão!)

Alguma ideia? Há mais dados que eu possa fornecer para ajudar a solucionar o problema? Parece que @Pad_Pors pode ter encontrado algo semelhante.

3 curtidas

Alguém encontrou uma solução para isso depois? Estamos enfrentando o mesmo problema.

Um usuário fez uma postagem e a excluiu, pediu para que fosse restaurada e agora o sistema continua apagando-a (o tópico inteiro, já que é a primeira postagem).

Podemos mover o conteúdo para um novo tópico, mas qualquer pessoa que estiver seguindo a URL original será levada a uma página de “não encontrado”.

5 curtidas

Podemos reproduzir isso na segunda-feira, @tshenry?

5 curtidas

Olá @AstonJ,

Você poderia confirmar os passos para reproduzir o problema? É isso que estou testando, mas quero ter certeza de que faz sentido para você.

  1. O usuário cria um tópico.
  2. O usuário exclui o tópico.
  3. O tópico entra no status de exclusão agendada:
  4. O tópico é automaticamente excluído após 24 horas.
  5. O usuário solicita à equipe que o tópico seja restaurado.
  6. Um membro da equipe localiza o tópico excluído e o restaura.
  7. O sistema exclui o tópico após a restauração.

Se houver algo que eu deva fazer de maneira diferente, por favor, me avise.

2 curtidas

Olá Taylor - o tópico foi publicado em abril, mas parece que isso aconteceu:

  1. O usuário cria o tópico ao clicar em ‘enviar’ (então o modelo do tópico é publicado - o que eles disseram não poder editar)
  2. O usuário publica conteúdo em uma segunda postagem e depois exclui a primeira
  3. A primeira postagem entra no status de exclusão agendada
  4. O usuário consulta a equipe, preocupado se todo o Tópico poderia desaparecer
  5. Um membro da equipe restaura a primeira postagem, copia o conteúdo da segunda postagem para ela e depois exclui a segunda postagem
  6. O tópico fica ativo com postagens de 08 de abril a 17 de abril
  7. O sistema exclui o tópico algum tempo depois (não tenho certeza exatamente quando) Edição: um dos moderadores informou que o sistema o excluiu em 7 de julho

Foi apenas quando o usuário postou perguntando onde estava seu Tópico ontem que descobrimos que isso está acontecendo.

Se precisar de mais alguma coisa, é só me avisar (este é o Tópico que continua sendo excluído, a propósito).

4 curtidas

Hmm. Não tenho certeza se entendi completamente o que está acontecendo na etapa 1, mas, assumindo que o ponto principal seja que um usuário criou um tópico, a etapa 2 parece ser impossível. Se eu criar um tópico como um usuário normal, fizer uma resposta a ele e tentar excluir minha primeira postagem (do tópico), a primeira postagem não será marcada para exclusão, o que é intencional.

3 curtidas

No meu caso, foi assim:

  1. O usuário cria um tópico
  2. Deleita-o
  3. Eu o restauro
  4. Depois de um tempo, ele volta a ficar deletado

Não tenho certeza dos prazos.

4 curtidas

Posso confirmar que isso aconteceu comigo várias vezes.

2 curtidas

Pelo que pude perceber, a equipe não tem um botão “desfazer exclusão” disponível no tópico de um usuário comum quando ele foi agendado para exclusão. Apenas o autor original pode desfazer a exclusão da postagem durante o período de espera. Quando você diz que o desfaço a exclusão, quer dizer que isso aconteceu após a exclusão automática?

1 curtida

Ah, sim, desculpe, Taylor! Acho que então eles apagaram a primeira postagem e depois fizeram uma segunda — o que, se não me engano, é possível.

1 curtida

Aqui está o que eu consegui:

  1. O usuário cria um tópico.
  2. O usuário exclui a postagem do tópico, agendando a exclusão (mudei a configuração do site delete_removed_posts_after para 1).
  3. O tópico é excluído após o tempo especificado.
  4. A equipe desfaz a exclusão do tópico e reverte para a versão original da postagem (apenas restaurar trará a postagem de volta com a mensagem “tópico retirado pelo autor, será excluído automaticamente em 1 hora, a menos que seja sinalizado”).
  5. O tópico será excluído novamente após algum tempo.

O que está acontecendo: Quando um usuário exclui sua própria postagem de tópico, uma propriedade chamada user_deleted é definida como true. Existe um trabalho em segundo plano chamado DestroyOldDeletionStubs que é executado a cada 30 minutos. Esse trabalho executa a função PostDestroyer.destroy_stubs, que buscará no banco de dados e excluirá todas as postagens que tenham user_deleted definido como true juntamente com um “temporizador de exclusão” expirado.

O problema: Quando a equipe restaura a postagem, user_deleted nunca é definido como false. Portanto, na próxima execução de DestroyOldDeletionStubs, a postagem será excluída novamente.

A solução: Tenho quase certeza de que precisaremos adicionar alguma lógica à função staff_recovered que definirá user_deleted como false (user_recovered já faz isso). Veja: discourse/lib/post_destroyer.rb at main · discourse/discourse · GitHub

A correção rápida: Restaure a postagem do tópico e obtenha seu ID, depois vá para o console do Rails e execute:

Post.find_by_id(ID_DA_POSTAGEM).update(user_deleted: false)

O ID da postagem pode ser encontrado facilmente adicionando .json ao final da URL de um tópico. Usando este tópico como exemplo: https://meta.discourse.org/t/topic-keeps-getting-deleted/128013.json. O ID da postagem do tópico é 632362.

10 curtidas

Aha, devemos corrigir @eviltrout

Ótimo trabalho de detetive, @tshenry!

6 curtidas

Bom trabalho, Taylor :slight_smile:

Para qualquer outra pessoa que precise do acima, você precisará desexcluir o post/tópico primeiro, caso contrário, o find retornará nil.

4 curtidas

Ainda estou enfrentando esse problema. Esse trabalho para definir user_deleted como false teve algum avanço?

Existe uma correção rápida ou uma solução alternativa para instâncias hospedadas?

2 curtidas

Eu diria:

  • torne seu usuário membro da equipe
  • assuma a identidade dele/dela
  • recupere o referido post
  • “remova” o usuário da equipe
2 curtidas