Mensagens "Usuários aguardando aprovação" após a migração

Há cerca de 8 meses, migrei um grupo do Yahoo para uma nova instalação do Discourse, baixando arquivos .mbox do Yahoo e importando-os para o Discourse. A importação ocorreu sem problemas e, embora não seja uma comunidade especialmente ativa, os usuários parecem gostar do novo formato. No entanto, o antigo grupo existia há quase 20 anos, o que traz seus próprios problemas.

Muitos dos membros do grupo ao longo de sua existência possuem endereços de e-mail que não são mais válidos (e, em alguns casos, eles já faleceram). E isso pode ser o motivo pelo qual recebo periodicamente uma mensagem do sistema informando que há cerca de 385 usuários aguardando aprovação, como neste exemplo:


Mas quando cliquei no link “Por favor, revise-os”, obtive este resultado:

Não é exatamente um problema grave, mas é um pouco irritante — existe alguma maneira de corrigir isso?

@tshenry há uma maneira de remover isso pela linha de comando, talvez?

Há algumas coisas que você pode fazer aqui. A mais fácil seria definir a seguinte configuração do site para -1:

A única desvantagem é que você não será notificado se houver usuários pendentes aguardando pelo número especificado de horas. Desde que alguém esteja geralmente disponível para aprovar novos usuários, isso não deve ser um problema.

A alternativa seria excluir ou aprovar os usuários diretamente pela linha de comando. Avise-me se uma dessas abordagens é preferível. Posso preparar os comandos para você em qualquer um dos casos.

Acho que aprová-los em lote pode ser melhor. O site não é muito ativo, então não estou nele todos os dias para aprovar novos usuários. Obrigado pela ajuda.

Ok, legal. Aqui está o que você pode fazer para lidar com o seu caso específico:

  1. Aprove ou rejeite quaisquer usuários pendentes que estejam visíveis atualmente na sua fila de revisão

  2. Faça um backup do seu site

  3. Acesse o console do Rails do seu site

    cd /var/discourse
    ./launcher enter app
    rails c
    
  4. Obtenha os usuários que estão em limbo de aprovação

    pending_users = AdminUserIndexQuery.new(query: 'pending', stats: false).find_users_query
    
  5. Execute o seguinte para aprová-los

    pending_users.each do |u|
      u.approved = true
      u.approved_by = Discourse.system_user
      u.approved_at = Time.zone.now
      u.save!
    end
    

Isso deve resolver!

Parece que realmente funcionou, obrigado. Se não for, eu saberia em breve.

Agora se passaram três semanas (desculpe), e eu não vi a mensagem novamente. Sim, essa correção funcionou.

Olá!
Qual seria o comando para desaprovar usuários em massa?
Importei um vBulletin e tenho cerca de 100 usuários pendentes, todas contas de spam. :slight_smile: