J’ai récemment migré un site vers Discourse. Ce que je n’avais pas réalisé, c’est que les noms d’utilisateur de nombreux utilisateurs ont été modifiés et que les nouveaux noms d’utilisateur semblent utiliser une partie de leur adresse e-mail. Je n’ai jamais vu les noms d’utilisateur changer lors de migrations précédentes. Comment puis-je annuler cela ?
S’il est déjà en ligne, il sera difficile de modifier les choses, bien que le nom d’utilisateur d’origine doive se trouver dans un champ personnalisé de l’utilisateur. Vous voulez vraiment résoudre ces problèmes pendant la phase de test.
À moins que le script de migration ne soit défectueux, la raison pour laquelle les noms d’utilisateur sont modifiés est qu’ils sont incompatibles avec le format de nom d’utilisateur de Discourse.
Quels sont les noms d’utilisateur qui ont été modifiés ? D’où avez-vous migré ?
Merci pour votre réponse Jay. Nous avons dû mettre le site en mode maintenance pour effectuer ces corrections. il était étrange que les colonnes username et name aient été modifiées. nous voyons comment nous pouvons les échanger. c’est très déroutant…
Vous pouvez consulter UserCustomField.where(user_id: some_id) pour voir quels champs personnalisés existent pour cet utilisateur, ce qui devrait inclure leur nom d’utilisateur d’origine.
Nous avons pu échanger. Mais après l’échange, les profils ne s’ouvrent pas ! Il est indiqué “oops page not found”.
Juste pour vérifier, avez-vous actualisé votre page après avoir remappé les noms d’utilisateur ? Discourse utilisera toujours l’ancien nom côté client jusqu’à ce que vous rechargiez, donc si vous avez remappé les noms et que vous n’avez pas rechargé, il essaiera d’ouvrir des profils d’utilisateur qui n’existent plus.
Merci. Nous allons vérifier cela.
De plus, je ne comprends pas comment il décide d’attribuer automatiquement la première moitié de l’adresse e-mail.
La plateforme précédente permettait aux utilisateurs de créer des noms de profil en utilisant des espaces et des caractères spéciaux, et elle utilisait l’ID utilisateur pour l’URL.
Pouvons-nous utiliser l’ID utilisateur sur l’URL et permettre la migration des noms de profil avec des espaces et des caractères spéciaux tels quels ?
Nous avons constaté que les noms d’utilisateur et les noms des sims étaient identiques.
Nous avons réalisé que certains noms contenaient désormais des espaces.
Si nous échangeons les sections nom d’utilisateur et nom, Discourse pourrait attribuer la moitié de l’identifiant de messagerie comme nom d’utilisateur pour ceux qui ne respectent pas les directives relatives aux noms de profil.
Et pourquoi discourse utiliserait-il des adresses e-mail en premier lieu ? Risque de sécurité
Non. Discourse n’autorise pas les espaces ou (la plupart des) caractères spéciaux dans les noms d’utilisateur. C’est pourquoi ils ont été réécrits.
Je ne comprends pas ce que vous dites à propos de l’URL.
Il doit utiliser quelque chose pour générer un nom d’utilisateur.
Il fait ceci :
UserNameSuggester.suggest(
opts[:username].presence || opts[:name].presence || opts[:email],
Donc, si vous n’avez pas de nom d’utilisateur ou de nom, il utilise la première partie de l’adresse e-mail.
Donc, nous pouvons le changer pour autre chose ? ou supprimer l’ID e-mail comme option ?