Hmm, guardando questo, penso che dovrei silenziare un account piuttosto che sospenderlo. Se l’account è sospeso, l’utente non può accedere per rivendicarlo.
Ecco una revisione…
Versione 0.0.2
silence_reason = 'Inattivo'
User.where("views = 0 OR approved = FALSE OR last_seen_at IS NULL")
.where("id > 0") # evita gli utenti di sistema
.find_each do |user|
user.silence(reason: silence_reason)
user.change_trust_level!(TrustLevel[0])
user.save!
logger.log_user_silence(user, silence_reason)
DiscourseEvent.trigger(:user_silenced, user: user)
sleep(5)
end
Sì, eseguirò un backup prima di fare qualsiasi cosa.
Sì, so che alcuni TL esistenti verranno mescolati e dovrò correggerli.
Inoltre, invece di silenziare, dovrei impostare Approved=false o Active=false? Credo che ciò costringerà l’utente a fare clic sul link dell’email piuttosto che farlo manualmente, il che serve allo scopo di convalidare l’indirizzo email.
Tutto questo è correlato al mio recente thread: notes-on-silencing-or-deleting-users
[EDIT]
Ho anche impostato “purge unactivated users grace period days” a 7.
Un silenzio o una sospensione resettano questo? Se sì, se le persone non rispondono a un’azione dell’account entro 7 giorni, non ho problemi a eliminarle.
Infine (sì, davvero) ho anche impostato “clean up inactive users after days” a 365. Posso impostarlo a 60 mentre il forum si sta ancora aprendo e semplicemente lasciare che gli account esistenti escano dalla lista. Poi aumentarlo di nuovo a 365. È un approccio ragionevole per la potatura automatica degli account in un nuovo ambiente?