Benutzerpräferenz für alle oder eine Teilmenge bearbeiten

:bookmark: Dieser Leitfaden erklärt, wie Sie eine Benutzereinstellung für alle Benutzer oder eine Teilmenge von Benutzern in Discourse bearbeiten.

:person_raising_hand: Erforderliches Benutzerlevel: Systemadministrator

:warning: Konsolenzugriff ist erforderlich.

Wenn Sie die Benutzereinstellung für alle Ihre Benutzer oder eine große Teilmenge von Benutzern aktualisieren müssen, können Sie dies über die Rails-Konsole tun.

Zusammenfassung

In diesem Leitfaden erfahren Sie:

  • Wie Sie auf die Rails-Konsole zugreifen, um Massenänderungen vorzunehmen
  • Beispiele zur Änderung von Benutzereinstellungen
  • Wie Sie Einstellungsbezeichnungen identifizieren

Zugriff auf die Rails-Konsole

Um in Ihrer Discourse-Installation die Rails-Konsole zu starten, führen Sie die folgenden Befehle aus:

./launcher enter app
rails c

Führen Sie anschließend einen Befehl aus, der die Menge der Benutzer auswählt, die Sie aktualisieren möchten.

Beispiele zur Änderung von Benutzereinstellungen

Nachstehend finden Sie Befehlsbeispiele zum Aktualisieren verschiedener Benutzereinstellungen:

Festlegen des letzten Sichtbarkeitsdatums für inaktive Benutzer

Legen Sie das Datum der letzten Aktivität für Benutzer fest, die sich noch nie angemeldet haben.

User.where("last_seen_at IS NULL").update_all(last_seen_at: 1.week.ago)

Deaktivieren des Mailing-Liste-Modus für alle Benutzer

Schalten Sie Benutzer zurück auf die Standardeinstellung, um zu verhindern, dass sie für jeden neuen Beitrag E-Mails erhalten.

UserOption.update_all(mailing_list_mode: false)

Festlegen des E-Mail-Niveaus auf „nur wenn abwesend“ für alle Benutzer

Gehen Sie zurück zu den Standardeinstellungen, um E-Mail-Benachrichtigungen zu verhindern, wenn Benutzer aktiv auf der Seite sind.

UserOption.update_all(email_level: 1)

Wobei email_level folgende Werte annehmen kann:

  • 0: immer (E-Mails senden, auch wenn der Benutzer aktiv ist)
  • 1: nur wenn abwesend (Standard)
  • 2: niemals

Aktivieren des Chats für alle Mitglieder der Beta-Gruppe

beta_group = Group.find_by(name: "beta")
beta_group.users.each do |user|
  UserOption.where(user_id: user.id).update_all(chat_enabled: true)
end

Konfigurieren der E-Mail-Benachrichtigungen, um vorherige Antworten auszuschließen

Legen Sie die Einstellung so fest, dass vorherige Antworten in E-Mail-Benachrichtigungen ausgeschlossen werden.

UserOption.update_all(email_previous_replies: 0)

Wobei email_previous_replies folgende Werte annehmen kann:

  • 0: immer
  • 1: es sei denn, bereits per E-Mail gesendet
  • 2: niemals

Weitere Informationen finden Sie unter Kontrolle vorheriger Antworten in E-Mails.

Identifizieren des Namens einer Einstellung

Um den Namen der Benutzereinstellung und die verfügbaren Optionen zu ermitteln:

  • Verwenden Sie das Data-Explorer-Plugin, um die Tabelle user_options zu untersuchen.
  • Durchsuchen Sie das Discourse-GitHub-Repository.

Um beispielsweise die Einstellung für „Wenn ich in einem Thema poste, setze dieses Thema auf“ anzupassen, müssen Sie die Benutzereinstellung notification_level_when_replying ändern.

Überprüfen Sie die relevante Einstellung für Beobachtung.

Sie können Docker auch so konfigurieren, dass psql freigegeben wird, und PGadmin für eine einfachere Verwaltung nutzen.

39 „Gefällt mir“