Feedback sobre a nova fila de revisão (2019)

Ah, eu não me importaria nem um pouco. Seria ideal, mesmo que a ação principal do botão suspenso fosse ‘Excluir Usuário’ e, ao usar o menu suspenso, você pudesse selecionar ‘Suspender Usuário’ em vez disso. Dessa forma, supondo que a maioria não seja configurada com SSO, não haveria trabalho adicional para eles, mas para aqueles que estão nessa situação, haveria uma maneira rápida de suspender um usuário em vez de excluí-lo.

3 curtidas

@Roman, você quer adicionar este à sua lista? Vejo que seria útil para sites com SSO.

7 curtidas

Ao excluirmos usuários da fila de revisão, aparece um popup ‘404 Não Encontrado’:

(Apenas atualizamos para a versão mais recente, mas o problema persiste)

3 curtidas

Vou dar uma olhada. Esses usuários estão aguardando aprovação?

3 curtidas

Aprovação + exclusão de usuários que foram sinalizados por spam.

2 curtidas

Acabei de perceber que também estou gerenciando outro site onde isso não acontece e tenho uma suspeita de que isso possa ter a ver com o Follow Plugin :man:, já que ele recentemente passou por algumas mudanças relacionadas a usuários excluídos. @merefield, o que você acha?

1 curtida

Sem ideia neste momento. Pode ser mais específico? Evidências de log?

Aba de Rede no Navegador: qual é a URL desse 404?

O único problema (menor) com o Plugin atualmente (que eu saiba) é que você precisa excluir as notificações associadas se desinstalar o plugin (script no OP do plugin). Isso não está relacionado a usuários excluídos.

1 curtida

Também não consegui reproduzir o problema localmente. A mensagem de erro me leva a pensar que o frontend está fazendo uma requisição AJAX para um endpoint que não existe. @bartv, você poderia compartilhar a aba de rede do seu navegador após realizar a ação de exclusão?

Gostaria de saber se parece com isso:

4 curtidas

Vou fazer da próxima vez que acontecer :+1:

1 curtida

O plugin faz monkey patch no UserDestroyer, que é chamado quando você executa a ação de exclusão da fila de revisão. Isso parece suspeito:

Se de alguma forma following_ids incluir um ID inválido, User#find lançará uma exceção, e o usuário verá uma mensagem de “404 Não Encontrado”. Recomendo usar User.find_by(id: ...) em vez disso.

Não consigo dizer se foi isso que aconteceu no site de @bartv sem olhar dentro do banco de dados, então, na próxima vez que isso acontecer, recomendo verificar os following_ids do usuário sinalizado.

4 curtidas

Obrigado. Isso é verdade e um destaque muito útil.

Ainda gostaria de ter os logs e confirmar essa URL 404.

Provavelmente existem ainda mais maneiras de tornar isso mais robusto.

4 curtidas

Empurrado: FIX: make code invoked when deleting users more robust · discourse/discourse-follow@b523b3a · GitHub obrigado!

3 curtidas

Mergulhamos um PR para adicionar essa ação. Confirmar, confirmar + excluir e confirmar + suspender agora estão agrupados:

4 curtidas

Removi o plugin Follow e meu problema persistiu. No log do Rails, vejo:

Started PUT "/review/6793/perform/reject_user_block?version=0" for xx.xx.xx.xx at 2020-09-03 09:45:48 +0000
Processing by ReviewablesController#perform as */*
  Parameters: {"version"=>"0", "reviewable_id"=>"6793", "action_id"=>"reject_user_block"}
Job exception: undefined method `strip' for nil:NilClass

  Rendering text template
  Rendered text template (Duration: 0.0ms | Allocations: 1)
Started GET "/t/global-variables/331828" for xx.xx.xx.xx at 2020-09-03 09:45:48 +0000
Processing by TopicsController#show as HTML
  Parameters: {"slug"=>"global-variables", "topic_id"=>"331828"}
Completed 404 Not Found in 292ms (ActiveRecord: 0.0ms | Allocations: 124598)
ActiveRecord::RecordNotFound (Couldn't find all Topics with 'id': (1185852, 1185853, 1186324, 1186929, 1191089) [WHERE ("topics"."deleted_at" IS NULL)] (found 4 results, but was looking for 5).)
lib/plugin/instance.rb:393:in `block in on'
lib/discourse_event.rb:14:in `block in trigger'
lib/discourse_event.rb:13:in `trigger'
app/models/user.rb:1567:in `trigger_user_destroyed_event'
app/models/reviewable.rb:353:in `perform'
app/controllers/reviewables_controller.rb:192:in `perform'
app/controllers/application_controller.rb:340:in `block in with_resolved_locale'
app/controllers/application_controller.rb:340:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:336:in `call'
config/initializers/008-rack-cors.rb:25:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:22:in `call'
lib/middleware/request_tracker.rb:176:in `call'

A linha ActiveRecord::RecordNotFound é interessante, pois aparece toda vez que tento excluir um usuário da fila de revisão, sempre com os mesmos IDs de tópico.

Verifiquei os IDs dos tópicos e todos são posts que usam o plugin Events. E, de fato, um deles foi excluído. Estou confuso quanto ao motivo de essa ação da fila de revisão verificar esses tópicos.

@merefield, parece que estou voltando a incomodar vocês novamente, desculpe :slight_smile:

EDIT: alterei o link do plugin

3 curtidas

Isso é um plugin principal.

1 curtida

Espere, estou usando

git clone GitHub - angusmcleod/discourse-events: Allows you to manage events in Discourse · GitHub

Esse não é o correto (mais?) (acho que posso ter vinculado à página errada ali, corrigindo)

1 curtida

Isso são Eventos. @fzngagan, alguma opinião sobre isso?

3 curtidas

Clicando nele, ele me direciona para o repositório correto.

1 curtida

Haha, não, o problema é em relação à exclusão de um usuário da Fila de Revisão.

4 curtidas

Isso não está relacionado a um plugin; trata-se de um arquivo de biblioteca central.

Por que você acha que o Events está envolvido?

3 curtidas