Mitarbeiter-E-Mail-Adresse über die Konsole ändern

:bookmark: Diese Anleitung beschreibt, wie Sie die E-Mail-Adresse eines Mitarbeiters über die Konsole mithilfe der Rails-Konsole ändern können. Sie gilt für Situationen, in denen ein Administrator eine E-Mail-Adresse ohne Bestätigung von der alten Adresse aus aktualisieren muss.
:
:person_raising_hand: Erforderliches Benutzerniveau: Systemadministrator
:
:warning: Konsolenzugriff erforderlich

In Discourse müssen Mitarbeiter aus Sicherheitsgründen Änderungen an ihren E-Mail-Adressen sowohl von der neuen als auch von der alten E-Mail-Adresse bestätigen. Dies führt jedoch zu einem Problem, wenn ein Mitarbeiter den Zugriff auf seine alte E-Mail-Adresse verliert und seine E-Mail-Adresse aktualisieren möchte. Diese Anleitung bietet Schritte zur Änderung der E-Mail-Adresse über die Konsole, ohne dass eine Bestätigung der alten E-Mail erforderlich ist.

:information_source:Diese Befehle können auch verwendet werden, um eine Änderung der E-Mail-Adresse eines Benutzers zu erzwingen und die Notwendigkeit zu umgehen, dass dieser auf den Validierungs-E-Mail-Link klickt.

Zugriff auf die Konsole

Verbinden Sie sich über SSH mit Ihrem Droplet oder verwenden Sie Putty unter Windows:

ssh root@192.168.1.1

Ersetzen Sie 192.168.1.1 durch die IP-Adresse Ihres Droplets.

Wechseln Sie in Ihren Discourse-Ordner:

cd /var/discourse

Betreten Sie den Container:

./launcher enter app
# oder
./launcher ssh app

Greifen Sie auf die Rails Console zu:

rails c

Ändern der E-Mail-Adresse

Um diese für Ihren Benutzer zu personalisieren, geben Sie hier Ihre Informationen ein:


                         oder

Führen Sie dann diese Befehle aus (jeder in einer separaten Zeile)

u = User.find_by_id(=UserID=)

                         oder

u = User.find_by_username("=Username=")

u.email = "=EMAIL="

:information_source: Wenn ein Benutzer das Limit für zurückgesendete E-Mails erreicht hat (d. h. sein Bounce-Score den von Ihrer Discourse-Site festgelegten Schwellenwert überschritten hat), hat das Erstellen eines neuen E-Mail-Tokens mit u.email_tokens.create(email: u.email) keine Auswirkungen, und Sie müssen zuerst seinen Bounce Score zurücksetzen, bevor Sie fortfahren.

u.email_tokens.create!(email: u.email, scope: EmailToken.scopes[:email_update])
u.save!

Das war’s, Ihre E-Mail-Adresse sollte aktualisiert sein, und Sie sollten sich mit Ihrer neuen E-Mail anmelden können.

29 „Gefällt mir“

Dies führt zu folgender Veraltungsmeldung:

DEPRECATION NOTICE: EmailToken#scope cannot be empty.
At /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.4/lib/active_support/callbacks.rb:406:in BasicObject#instance_exec

Ich habe das Wiki wie folgt aktualisiert:

u.email_tokens.create(email: u.email, scope: 'change_email')
2 „Gefällt mir“