Lista negra de e-mail – Pergunta sobre exclusão/desabilitação em massa

Após os domínios serem incluídos na lista negra, as contas que já passaram pelo processo permanecem inalteradas e continuam utilizáveis.

Gostaria de saber se alguém conhece uma maneira de destruir em massa (excluir usuário + todo o seu conteúdo), suspender ou silenciar usuários com base no domínio do e-mail de registro?

No meu caso, isso permitiria excluir/desabilitar centenas de milhares de contas que utilizaram a técnica de domínio catchall para se registrar.

Esses dados foram migrados? Excluir tantos contas será muito, muito doloroso — a menos que todas tenham quase nenhum conteúdo.

Você pode fazer isso pelo console do Rails, mas parece que pode ficar bem confuso.

@codinghorror - Não são dados migrados. Não me importo que seja doloroso e lento, pois a alternativa de permitir que as contas permaneçam provavelmente é pior :hot_face: Quanto à quantidade de conteúdo, é uma mistura: alguns não têm nenhum (geralmente os spammers pretendem usar essas contas mais tarde), alguns têm mínimo e outros têm muitos.

@pfaffman Ótimo! Você sabe como? Haha :pray:

Você já pensou em anonimizar os usuários?

@fzngagan Essa pode ser uma solução sólida. Sabe se há uma maneira de fazer isso em massa?

Sim. Isso pode ser feito no console do Rails. Mas a questão é: com base em quais critérios você deseja anonimizar os dados?

@fzngagan Ótimo! O critério seria: todos os e-mails que usam um domínio específico no endereço de registro. Por exemplo: exemplo@blacklisted.com, exemplo2@blacklisted.com

No console do Rails, digite os seguintes comandos e verifique se eles produzem os resultados esperados (substitua o padrão do seu ID de e-mail por ‘@gmail.com’)

idlist = UserEmail.where("email like '%@gmail.com'").pluck(:user_id)
users = User.find(idlist)

então (prossiga com cautela)

system_user = Discourse.system_user
users.each do |user|
  UserAnonymizer.new(user, system_user).make_anonymous
end

Não sou especialista em questões de desempenho, então não sei exatamente o que aconteceria se o número de usuários fosse grande.

@fzngagan Uau, que legal, muito obrigado! :slight_smile: Agradeço muito.

Vou garantir que tudo esteja recentemente backupado antes de tentar isso.

Uma pergunta rápida: você sabe se é possível silenciar em massa os usuários (para sempre) usando essa técnica?

Sim. O console do Rails pode fazer quase tudo o que pode ser feito por meio de código.