Wir nutzen SSO, um Benutzer anzumelden, die auf unserer Hauptwebsite authentifiziert wurden.
Einer unserer Benutzer erhielt bei der Anmeldung eine Fehlermeldung und wurde gebeten, einen Administrator zu kontaktieren. Wir suchten nach ihr, konnten ihr Profil jedoch nicht finden.
Dadurch wird der Systembenutzer den Benutzer mit der E-Mail-Adresse ex@example.com löschen. Sie können auch einen Benutzernamen anstelle der E-Mail-Adresse angeben.
Wenn Sie in den Logs nachvollziehen möchten, wer den Benutzer gelöscht hat, ersetzen Sie Discourse.system_user durch User.find_by_username_or_email("admin@example.com"), wobei admin@example.com die E-Mail-Adresse eines Site-Administrators ist.
Hallo Joshua und vielen Dank für deine schnelle Antwort.
Leider ist dabei ein Fehler aufgetreten:
UserDestroyer::PostsExistError: UserDestroyer::PostsExistError
from /var/www/discourse/app/services/user_destroyer.rb:18:in `destroy'
Hinweis: Ich habe den Benutzernamen anstelle der E-Mail-Adresse verwendet, um den Benutzer zu finden, da die E-Mail von mir versehentlich gelöscht wurde.
OK, das bedeutet, dass der Benutzer, den Sie löschen möchten, Beiträge hat: PostsExistError.
Die empfohlene Lösung besteht darin, die Beiträge des Benutzers zu überprüfen und sie einzeln zu löschen, falls es welche gibt, die Sie behalten möchten, indem Sie den Benutzer ändern. Denken Sie daran, dass das Löschen des ersten Beitrags in einem Thema auch das Thema löscht.
UndefinedColumn: ERROR: column users.email does not exist
LINE 1: SELECT "users".* FROM "users" WHERE "users"."email" = 'test'...
Ich denke, jomaxros Antwort könnte mit einem funktionierenden Beispiel aktualisiert werden.
Außerdem, wie lautet der Befehl, um einen Benutzer über seine E-Mail-Adresse zu löschen?
Alle Benutzer wurden gelöscht, außer dem letzten. Wenn ich diesen überspringe, werden die nächsten Benutzer gelöscht, bis aus einem unbekannten Grund ein weiterer Benutzer nicht gelöscht werden kann.
Edit: Ich musste diese Einstellungen ändern: delete all post max delete_user_max_post_age