Recientemente trasladé un sitio a Discourse. Lo que no me di cuenta fue que los nombres de usuario de muchos usuarios cambiaron y los nuevos nombres de usuario parecen usar una parte de su dirección de correo electrónico. Nunca he visto que los nombres de usuario cambien durante migraciones anteriores. ¿Cómo puedo revertir esto?
Si ya se ha publicado, será difícil cambiar las cosas, aunque el nombre de usuario original debería estar en un campo personalizado del usuario. Realmente quieres resolver estos problemas en la fase de pruebas.
A menos que el script de migración esté roto, la razón por la que se cambian los nombres de usuario es que son incompatibles con el formato de nombre de usuario de Discourse.
¿Cuáles son algunos nombres de usuario que se cambiaron? ¿Desde qué se migró?
Gracias por tu respuesta Jay. Tuvimos que poner el sitio en modo de mantenimiento para hacer estas correcciones. Fue extraño que las columnas de nombre de usuario y nombre fueran cambiadas. Estamos viendo cómo podemos intercambiarlas. Esto es muy confuso…
Puedes ver UserCustomField.where(user_id: some_id) para ver qué campos personalizados existen para ese usuario, lo que debería incluir su nombre de usuario original.
Pudimos intercambiar. ¡Pero después de intercambiar los perfiles no se abren! Dice “Oops, página no encontrada”.
Solo para verificar, ¿actualizaste tu página después de reasignar nombres de usuario? Discourse seguirá usando el nombre antiguo del lado del cliente hasta que recargues, por lo que si reasignaste nombres y no recargaste, intentaría abrir perfiles de usuario que ya no existen.
Gracias. Lo comprobaremos.
Además, no entiendo cómo decide asignar automáticamente la primera mitad de la dirección de correo electrónico.
La plataforma anterior permitía a los usuarios crear nombres de perfil usando espacios y caracteres especiales, y utilizaba userID para la URL.
¿Podemos usar userID en la URL y permitir la migración de nombres de perfil con espacios y caracteres especiales tal como están?
Vimos que los nombres de usuario y los nombres de los sims eran los mismos.
Nos dimos cuenta de que algunos nombres ahora contienen espacios.
Si intercambiamos las secciones de nombre de usuario y nombre, Discourse podría asignar la mitad de la identificación de correo electrónico como nombre de usuario para aquellos que no cumplen con las directrices de nombres de perfil.
¿Y por qué usaría discourse las direcciones de correo electrónico en primer lugar? Riesgo de seguridad
No. Discourse no permite espacios ni (la mayoría de) caracteres especiales en los nombres de usuario. Por eso fueron reescritos.
No entiendo a qué te refieres con la URL.
Tiene que usar algo para generar un nombre de usuario.
Lo hace así:
UserNameSuggester.suggest(
opts[:username].presence || opts[:name].presence || opts[:email],
Así que si no tienes un nombre de usuario o un nombre, recurre a usar la primera parte de la dirección de correo electrónico.
Entonces, ¿podemos cambiarlo a otra cosa? ¿o eliminar el ID de correo electrónico como opción?