Lista nera email - Domanda su eliminazione/disabilitazione in blocco

Dopo che i domini sono stati inseriti nella blacklist, gli account che sono già stati approvati non vengono influenzati e possono continuare a essere utilizzati.

Vorrei chiedere se qualcuno conosce un metodo per eliminare in blocco (cancellare utente e tutto il relativo contenuto), sospendere o silenziare gli utenti in base al dominio dell’email di registrazione?

Nel mio caso, questo permetterebbe di eliminare o disabilitare centinaia di migliaia di account che hanno utilizzato la tecnica del dominio catch-all per registrarsi.

Erano dati migrati? Eliminare così tanti account sarà molto, molto doloroso, a meno che non contengano quasi nessun contenuto.

Puoi farlo dalla console di Rails, ma sembra che potrebbe diventare molto disordinato.

@codinghorror - Non si tratta di dati migrati. Non mi dispiace che sia doloroso e lento, poiché l’alternativa di permettere ai conti di rimanere potrebbe essere peggio :hot_face: Per quanto riguarda la quantità di contenuti, è un mix: alcuni non ne hanno affatto (di solito gli spammer intendono utilizzare questi account in seguito), alcuni ne hanno pochi, altri ne hanno un sacco.

@pfaffman Ottimo! Lo sai come fare? Haha :pray:

Hai pensato di anonimizzare gli utenti?

@fzngagan Potrebbe essere una soluzione valida. Sai se esiste un modo per farlo in blocco?

Sì. È possibile farlo dalla console di Rails. Ma la domanda è: secondo quali criteri desideri anonimizzarli?

@fzngagan Ottimo! Il criterio sarebbe: tutte le email che utilizzano un dominio specifico nell’indirizzo di registrazione. Ad esempio, example@blacklisted.com, example2@blacklisted.com

Nella console di Rails, digita questi comandi e verifica se producono i risultati attesi (sostituisci il tuo pattern di indirizzo email con ‘@gmail.com’)

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

poi (procedi con cautela)

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

Non sono un esperto di prestazioni, quindi non so esattamente cosa accadrebbe se il numero di utenti fosse elevato.

@fzngagan Wow, che bello, grazie mille! :slight_smile: Lo apprezzo davvero tanto.

Assicurati che tutto sia stato aggiornato di recente prima di provare.

Una domanda veloce: sai se è possibile silenziare in blocco gli utenti (per sempre) usando questa tecnica?

Sì. La console di Rails può fare quasi tutto ciò che è possibile fare tramite codice.