Veuillez évaluer un court script Ruby pour suspendre les utilisateurs inactifs

Hmm, en regardant cela, je pense que je devrais plutôt faire taire un compte plutôt que de le suspendre. Si le compte est suspendu, l’utilisateur ne peut pas se connecter pour le récupérer.

Voici une révision…

Version 0.0.2
silence_reason = 'Inactive'
User.where("views = 0 OR approved = FALSE OR last_seen_at IS NULL")
    .where("id > 0") # éviter les utilisateurs système
    .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

Oui, je vais faire une sauvegarde avant de faire quoi que ce soit.
Oui, je sais que certains TL existants seront mélangés et que je devrai les corriger.

De plus, au lieu de faire taire, devrais-je définir Approved=false ou Active=false ? Je pense que cela obligera l’utilisateur à cliquer sur le lien de l’e-mail plutôt que de se connecter manuellement, ce qui sert le but de valider l’adresse e-mail.

Tout cela est lié à mon récent fil de discussion : notes-on-silencing-or-deleting-users

[EDIT]
J’ai également défini “purge unactivated users grace period days” sur 7.
Un silence ou une suspension réinitialise-t-il cela ? Si oui, si les gens ne répondent pas à une action de compte dans les 7 jours, cela ne me dérange pas de les purger.

Enfin (oui, vraiment), j’ai aussi “clean up inactive users after days” réglé sur 365. Je peux le baisser à 60 pendant que le forum s’ouvre encore et laisser les comptes existants disparaître de la liste. Puis le remonter à 365. Est-ce une approche raisonnable pour l’élagage automatisé des comptes dans un nouvel environnement ?

1 « J'aime »