Eine Benutzereinstellung für alle oder eine Teilmenge von Benutzern bearbeiten

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

:person_raising_hand: Erforderliche Benutzerebene: 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 dieser Anleitung erfahren Sie:

  • Wie Sie auf die Rails-Konsole zugreifen, um Massenänderungen vorzunehmen
  • Beispiele für die Änderung von Benutzereinstellungen
  • Wie Sie die Namen von Einstellungen identifizieren

Zugriff auf die Rails-Konsole

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

./launcher enter app
rails c

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

Beispiele für die Änderung von Benutzereinstellungen

Nachfolgend finden Sie Befehlsbeispiele zum Aktualisieren verschiedener Benutzereinstellungen:

Festlegen des letzten gesehenen Datums für inaktive Benutzer

Legen Sie das Datum des letzten Zugriffs 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 Mailinglistenmodus für alle Benutzer

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

UserOption.update_all(mailing_list_mode: false)

Festlegen der E-Mail-Stufe auf nur bei Abwesenheit für alle Benutzer

Stellen Sie die Standardeinstellungen wieder her, um E-Mail-Benachrichtigungen zu verhindern, wenn Benutzer aktiv auf der Website anwesend sind.

UserOption.update_all(email_level: 1)

Wobei email_level folgende Werte haben kann:

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

Chat für alle Beta-Gruppenmitglieder aktivieren

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 von E-Mail-Benachrichtigungen, um vorherige Antworten auszuschließen

Legen Sie die Einstellung fest, um vorherige Antworten in E-Mail-Benachrichtigungen auszuschließen.

UserOption.update_all(email_previous_replies: 0)

Wobei email_previous_replies folgende Werte haben kann:

  • 0: immer
  • 1: außer wenn zuvor per E-Mail gesendet
  • 2: niemals

Weitere Informationen finden Sie unter Steuern früherer Antworten in E-Mails.

Identifizieren des Namens einer Einstellung

Um den Benutzereinstellungsnamen 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 im Zusammenhang mit „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 auf beobachten.

Sie können Docker auch so konfigurieren, dass psql verfügbar gemacht wird und PGadmin für eine einfachere Verwaltung verwendet wird.

39 „Gefällt mir“