Tengo problemas para renombrar a un usuario de vuelta al nombre de usuario anterior (importé de phpBB y tuve que renombrar algunos usuarios, por ejemplo, Möp a Moep). Obtengo un error 500 cuando intento renombrar al usuario, y al recargar, el usuario todavía tiene el nombre sin la diéresis. ¿Alguna idea? La configuración de unicode está habilitada, las diéresis están permitidas y también está habilitado external system avatars enabled.
Necesitarás revisar los registros y ver qué hay. Podrías encontrarlos en /logs o podrías necesitar revisar /var/discourse/shared/standalone/log/rails/production.log (creo que es log y no logs).
Ah, gracias. No tenía idea de si había archivos de registro y dónde estaban. Ahora lo sé. ![]()
Encontré esto:
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'
Hay más, pero pensé que podría ser suficiente. Si no, puedo proporcionar más.
Por cierto, probé con más de un nombre de usuario y tuve problemas similares.
@pfaffman ¿puedes ver la causa en mis registros por qué obtengo el error 500? ![]()
No le gustaron los caracteres del nombre de usuario. No sé por qué.
Acabo de probar a renombrar a un usuario de “moep” a “Möp” y funcionó.
- ¿Qué versión de Discourse estás utilizando?
- ¿Es una instalación estándar?
- ¿Hay algún tipo de proxy inverso delante de tu Discourse?
- ¿Qué navegador estás utilizando?
- ¿Cuál es el valor de la configuración
allowed_unicode_username_characters? - ¿Funciona el cambio de nombre en la consola de Rails?
./launcher enter app rails cuser = User.find_by_username("moep") new_username = "Möp" UsernameChanger.change(user, new_username, Discourse.system_user)
La última. Que debería ser 2.9.0.beta12 en este momento.
Sí. Simplemente cambié el nombre del contenedor ya que planeo ejecutar más de una instancia de Discourse. Pero en este momento solo hay una en funcionamiento.
Apache 2.4
Chrome, Brave.
[äöüßÄÖÜẞ]
Tampoco funciona:
=> "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 `+'
Aquí intenté “Waegi” a “Wägi”.
Lo que noté: uso una nueva versión de plantilla para el contenedor que contiene la siguiente información:
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
DISCOURSE_DEFAULT_LOCALE: de
En la plantilla antigua (de 2019 más o menos) solo estaba:
env:
LANG: en_US.UTF-8
DISCOURSE_DEFAULT_LOCALE: de
¿Esto podría tener que ver con el problema? ¿Y son estas las configuraciones correctas para una instalación de Discourse con idioma principal alemán?
Oh, y ahora me doy cuenta de que el error lo lanza discourse-migratepassword, que fue la razón por la que renombré a los usuarios antes de importar todo de phpBB a Discourse.
¿Sería útil deshabilitar discourse-migratepassword, renombrar a los usuarios y luego volver a habilitarlo? ¿Qué más maneja discourse-migratepassword que necesite estar activo después de la importación de phpBB?
Parece que el plugin discourse-migratepassword no es compatible con nombres de usuario Unicode.
cc @michaeld
Sí, deshabilitar el plugin debería solucionar este problema para ti.
No es útil durante la importación, solo después de la importación, ya que permite a tus usuarios iniciar sesión con su contraseña anterior.
Okay, gracias. Entonces, ¿lo deshabilitaría, renombraría a los usuarios y luego lo volvería a habilitar de inmediato? ¡Gracias de nuevo! ![]()
Deshabilitar y luego renombrar a los usuarios funcionó. Gracias de nuevo. ![]()
Me preguntaba: ¿Pueden los usuarios con umlauts iniciar sesión ahora con su antigua contraseña de phhBB, ya que discourse-migratepassword parece tener este problema de unicode?
Estoy bastante seguro de que la primera vez que inician sesión, su contraseña se guarda como una contraseña de Discourse, por lo que ya no la necesita. Parece que cualquiera que vaya a iniciar sesión con la contraseña importada ya lo ha hecho.
No puedo reproducir este problema. Misma configuración para caracteres unicode y permitidos, incluso creé un usuario con el mismo nombre de usuario y lo renombré a Möp. ¿Debería haber algo más, que desconozca, para que surja este problema?
Extraño. Tuve este problema con todos los nombres de usuario que probé. Como caracteres unicode, solo tenía umlauts alemanes como äöü. Otro ejemplo fue: Waegi a Wägi.
Este problema surgió por primera vez en el script de importación de phpBB3 a Discourse, que fue la razón por la que renombré a todos los usuarios con umlauts en phpBB y luego reinicié el script de importación. Por supuesto, quería que los usuarios en Discourse volvieran con su nombre de usuario original.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.