Bitte kurze Ruby-Skript zur Sperrung inaktiver Benutzer auswerten

Hmm, wenn ich mir das so ansehe, denke ich, ich sollte ein Konto stummschalten und nicht sperren. Wenn das Konto gesperrt ist, kann sich der Benutzer nicht anmelden, um das Konto zu beanspruchen.

Hier ist eine Überarbeitung …

Version 0.0.2
silence_reason = 'Inactive'
User.where("views = 0 OR approved = FALSE OR last_seen_at IS NULL")
    .where("id > 0") # vermeide Systembenutzer
    .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

Ja, ich werde vorher ein Backup machen.
Ja, ich weiß, dass einige bestehende TLs neu zugeordnet werden und ich sie korrigieren muss.

Sollte ich zusätzlich zum Stummschalten oder anstelle des Stummschaltens Approved=false oder Active=false setzen? Ich glaube, das zwingt den Benutzer, auf den E-Mail-Link zu klicken, anstatt manuell ein Login durchzuführen, was dem Zweck der Validierung der E-Mail-Adresse dient.

Dies alles bezieht sich auf meinen letzten Thread: notes-on-silencing-or-deleting-users

[EDIT]
Ich habe auch “purge unactivated users grace period days” auf 7 gesetzt.
Setzt eine Stummschaltung oder Sperrung dies zurück? Wenn ja, wenn Leute nicht innerhalb von 7 Tagen auf eine Kontoaktion reagieren, habe ich kein Problem damit, sie zu löschen.

Schließlich (ja, wirklich) habe ich auch “clean up inactive users after days” auf 365 gesetzt. Ich kann das auf 60 reduzieren, während das Forum noch geöffnet wird, und einfach bestehende Konten von der Liste fallen lassen. Dann wieder auf 365 erhöhen. Ist das ein vernünftiger Ansatz für die automatische Bereinigung von Konten in einer neuen Umgebung?

1 „Gefällt mir“