J’ai des problèmes pour renommer un utilisateur avec son ancien nom d’utilisateur (j’ai importé depuis phpBB et j’ai dû renommer certains utilisateurs, par exemple Möp en Moep). J’obtiens une erreur 500 lorsque j’essaie de renommer l’utilisateur, et même lors du rechargement, l’utilisateur a toujours le nom sans le tréma. Une idée ? Les paramètres unicode sont activés, les trémas sont autorisés et également external system avatars enabled est activé.
Vous devrez examiner les journaux et voir ce qu’ils contiennent. Vous pourriez les trouver dans /logs ou vous devrez peut-être regarder dans /var/discourse/shared/standalone/log/rails/production.log (je pense que c’est log et non logs).
Ah merci. Je n’avais aucune idée si et où il y avait des fichiers journaux. Maintenant je sais. ![]()
J’ai trouvé ceci :
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'
Il y a plus, mais je pensais que cela pourrait suffire. Sinon, je peux en fournir davantage.
Au fait, j’ai essayé plus d’un nom d’utilisateur et j’ai eu des problèmes similaires.
@pfaffman peux-tu voir la cause dans mes logs pourquoi j’obtiens l’erreur 500 ? ![]()
Il n’a pas aimé les caractères dans le nom d’utilisateur. Je ne sais pas pourquoi.
Je viens de tester le renommage d’un utilisateur de « moep » à « Möp » et cela a fonctionné.
- Quelle version de Discourse utilisez-vous ?
- S’agit-il d’une installation standard ?
- Y a-t-il une sorte de proxy inverse devant votre Discourse ?
- Quel navigateur utilisez-vous ?
- Quelle est la valeur du paramètre
allowed_unicode_username_characters? - Le renommage dans la console Rails fonctionne-t-il ?
./launcher enter app rails cuser = User.find_by_username("moep") new_username = "Möp" UsernameChanger.change(user, new_username, Discourse.system_user)
La dernière. Ce qui devrait être 2.9.0.beta12 en ce moment.
Oui. J’ai juste renommé le nom du conteneur car je prévois d’exécuter plus d’une instance de Discourse. Mais pour le moment, il n’y en a qu’une seule en cours d’exécution.
Apache 2.4
Chrome, Brave.
[äöüßÄÖÜẞ]
Cela ne fonctionne pas non plus :
=> "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 `+'
Ici, j’ai essayé de passer de “Waegi” à “Wägi”.
Ce que j’ai remarqué : j’utilise une nouvelle version de modèle pour le conteneur qui contient les informations suivantes :
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_DEFAULT_LOCALE: de
Dans l’ancien modèle (vers 2019), il n’y avait que :
env:
LANG: en_US.UTF-8
DISCOURSE_DEFAULT_LOCALE: de
Cela a-t-il un rapport avec le problème ? Et ces paramètres sont-ils corrects pour une installation de Discourse dont la langue principale est l’allemand ?
Oh, et j’ai remarqué maintenant que l’erreur est générée par discourse-migratepassword - ce qui était la raison pour laquelle j’ai renommé les utilisateurs avant d’importer tout depuis phpBB vers Discourse.
Serait-il utile de désactiver discourse-migratepassword, de renommer les utilisateurs, puis de le réactiver ? Qu’est-ce qui est géré d’autre par discourse-migratepassword pour qu’il doive être actif après l’importation depuis phpBB ?
Il semble que le plugin discourse-migratepassword ne soit pas compatible avec les noms d’utilisateur Unicode.
cc @michaeld
Oui, désactiver le plugin devrait résoudre ce problème pour vous.
Il n’est pas utile pendant l’importation, seulement après l’importation car il permet à vos utilisateurs de se connecter avec leur ancien mot de passe.
D’accord, merci. Donc je le désactiverais, renommerais les utilisateurs, puis le réactiverais tout de suite. Merci encore ! ![]()
La désactivation puis le renommage des utilisateurs ont fonctionné. Merci encore. ![]()
Je me demandais : les utilisateurs avec des umlauts peuvent-ils maintenant se connecter avec leur ancien mot de passe phhBB car discourse-migratepassword semble avoir ce problème d’unicode ?
Je suis à peu près sûr que la première fois qu’ils se connectent, leur mot de passe est enregistré comme un mot de passe Discourse, vous n’en avez donc plus besoin. Il semble que quiconque va se connecter avec le mot de passe importé l’ait déjà fait.
Je ne parviens pas à reproduire ce problème. Même configuration pour l’unicode et les caractères autorisés, j’ai même créé un utilisateur avec le même nom d’utilisateur et je l’ai renommé en Möp. Il doit y avoir autre chose - dont j’ignore l’existence - pour que ce problème apparaisse ?
Étrange. J’ai eu ce problème avec tous les noms d’utilisateur que j’ai essayés. comme caractères unicode, j’avais seulement des umlauts allemands comme äöü. Un autre exemple était : Waegi à Wägi.
Ce problème est survenu pour la première fois dans le script d’importation de phpBB3 vers Discourse, ce qui m’a amené à renommer tous les utilisateurs avec des umlauts dans phpBB, puis à redémarrer le script d’importation. Bien sûr, je voulais que les utilisateurs dans Discourse aient à nouveau leur nom d’utilisateur d’origine.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.