Per favore, valuta uno script Ruby breve per sospendere utenti inattivi

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?

1 Mi Piace