Problem beim Umbenennen von Benutzern mit Unicode-Zeichen

Ich habe Probleme, einen Benutzer zurück in den alten Benutzernamen umzubenennen (ich habe von phpBB importiert und musste einige Benutzer umbenennen, z.B. Möp in Moep). Ich erhalte einen 500-Fehler, wenn ich versuche, den Benutzer umzubenennen, und auch beim Neuladen hat der Benutzer immer noch den Namen ohne den Umlaut. Irgendeine Idee? Die Unicode-Einstellungen sind aktiviert, die Umlaute sind erlaubt und auch externe Systemavatare aktiviert ist aktiviert.

Sie müssen sich die Protokolle ansehen und sehen, was dort ist. Möglicherweise sehen Sie sie unter /logs oder Sie müssen sich /var/discourse/shared/standalone/log/rails/production.log ansehen (ich glaube, es ist log und nicht logs).

2 „Gefällt mir“

Ah danke. Ich wusste nicht, ob und wo es Logdateien gibt. Jetzt weiß ich es. :slight_smile:

Habe das hier gefunden:

Started PUT "/users/moep/preferences/username" for xxxx:c5:9f0d:4c00:xxxx:e179:xxxx:xxxx at 2022-11-23 15:53:52 +0000
Processing by UsersController#username as */*
  Parameters: {"new_username"=>"Möp", "username"=>"moep"}
Completed 500 Internal Server Error in 338ms (ActiveRecord: 0.0ms | Allocations: 137204)
Encoding::CompatibilityError (incompatible character encodings: ASCII-8BIT and UTF-8)
app/models/user.rb:1806:in `username_validator'
app/services/username_changer.rb:35:in `change'
app/services/username_changer.rb:13:in `change'
app/controllers/users_controller.rb:202:in `username'

Es gibt mehr, aber ich dachte, das könnte reichen. Wenn nicht, kann ich mehr bereitstellen.

Übrigens, ich habe mehr als einen Benutzernamen ausprobiert und hatte ähnliche Probleme.

1 „Gefällt mir“

@pfaffman kannst du in meinen Logs sehen, warum ich den 500er-Fehler bekomme? :slight_smile:

Es mochten die Zeichen im Benutzernamen nicht. Ich weiß nicht warum.

Ich habe gerade das Umbenennen eines Benutzers von „moep“ in „Möp“ getestet und es hat funktioniert.

  • Welche Version von Discourse verwenden Sie?
  • Handelt es sich um eine Standardinstallation?
  • Befindet sich ein Reverse-Proxy vor Ihrem Discourse?
  • Welchen Browser verwenden Sie?
  • Was ist der Wert der Einstellung allowed_unicode_username_characters?
  • Funktioniert die Umbenennung in der Rails-Konsole?
    ./launcher enter app
    rails c
    
    user = User.find_by_username("moep")
    new_username = "Möp"
    UsernameChanger.change(user, new_username, Discourse.system_user)
    
2 „Gefällt mir“

Neueste. Was im Moment 2.9.0.beta12 sein sollte.

Ja. Ich habe nur den Containernamen geändert, da ich mehr als eine Discourse-Instanz ausführen möchte. Aber im Moment läuft nur eine.

Apache 2.4

Chrome, Brave.

[äöüßÄÖÜẞ]

Es funktioniert auch nicht:

=> "Wägi"
[6] pry(main)> UsernameChanger.change(user, new_username, Discourse.system_user)
Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8
from /var/www/discourse/plugins/discourse-migratepassword/plugin.rb:78:in `+'

Hier habe ich “Waegi” zu “Wägi” versucht.

Was mir aufgefallen ist: Ich verwende eine neue Vorlagenversion für den Container, die folgende Informationen enthält:

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  DISCOURSE_DEFAULT_LOCALE: de

In der alten Vorlage (ca. 2019) gab es nur:

env:
  LANG: en_US.UTF-8
  DISCOURSE_DEFAULT_LOCALE: de

Hat das vielleicht etwas mit dem Problem zu tun? Und sind das die richtigen Einstellungen für eine Discourse-Installation mit der Hauptsprache Deutsch?

Oh, und mir ist jetzt aufgefallen, dass der Fehler von discourse-migratepassword ausgelöst wird – was der Grund war, warum ich die Benutzernamen umbenannt habe, bevor ich alles von phpBB nach Discourse importiert habe.

Wäre es hilfreich, discourse-migratepassword zu deaktivieren, die Benutzernamen umzubenennen und es dann wieder zu aktivieren? Was wird noch von discourse-migratepassword gehandhabt, dass es nach dem Import von phpBB aktiv sein muss?

2 „Gefällt mir“

Es scheint, dass das discourse-migratepassword-Plugin nicht mit Unicode-Benutzernamen kompatibel ist.
cc @michaeld

Ja, das Deaktivieren des Plugins sollte dieses Problem für Sie beheben.

Es ist nicht während des Imports nützlich, sondern nur nach dem Import, da es Ihren Benutzern ermöglicht, sich mit ihrem alten Passwort anzumelden.

2 „Gefällt mir“

Okay, danke. Ich würde es also deaktivieren, die Benutzer umbenennen und dann sofort wieder aktivieren. Nochmals vielen Dank! :slight_smile:

1 „Gefällt mir“

Das Deaktivieren und anschließende Umbenennen der Benutzer hat funktioniert. Nochmals vielen Dank. :slight_smile:

Ich habe mich gefragt: Können sich die Benutzer mit Umlauten jetzt mit ihrem alten phhBB-Passwort anmelden, da discourse-migratepassword dieses Unicode-Problem zu haben scheint?

1 „Gefällt mir“

Ich bin ziemlich sicher, dass ihr Passwort beim ersten Einloggen als Discourse-Passwort gespeichert wird, sodass Sie es nicht mehr benötigen. Es klingt so, als ob sich jeder, der sich mit dem importierten Passwort anmelden wird, bereits angemeldet hat.

1 „Gefällt mir“

Ich kann dieses Problem nicht reproduzieren. Gleiche Einstellungen für Unicode und erlaubte Zeichen, ich habe sogar einen Benutzer mit demselben Benutzernamen erstellt und ihn in Möp umbenannt. Es muss etwas anderes geben – das ich nicht kenne –, damit dieses Problem auftritt?

1 „Gefällt mir“

Seltsam. Ich hatte dieses Problem mit jedem Benutzernamen, den ich ausprobiert habe. Als Unicode-Zeichen hatte ich nur deutsche Umlaute wie äöü. Ein weiteres Beispiel war: Waegi zurück zu Wägi.

Dieses Problem trat zuerst im phpBB3-Import zu Discourse-Skript auf, was der Grund dafür war, dass ich alle Umlaut-Benutzer in phpBB umbenannt und dann das Import-Skript neu gestartet habe. Sicherlich wollte ich die Benutzer in Discourse wieder mit ihrem ursprünglichen Benutzernamen haben.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.