Diese Anleitung erklärt, wie Sie eine Benutzereinstellung für alle oder eine Teilmenge von Benutzern in Discourse bearbeiten.
Erforderliche Benutzerebene: Systemadministrator
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_optionszu 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.