La citation échoue lorsque le nom correspond au nom d'utilisateur

Suite de Configuring Twitter login and rich embeds for Discourse - #114 by Hifihedgehog

J’ai reçu un e-mail à ce sujet et j’étais très confus car je ne me souvenais pas d’avoir posté quelque chose comme ça.

Je suis curieux de savoir comment « taylor » a été échangé ici dans la citation de réponse ? Est-ce une erreur d’édition manuelle (je ne sais pas comment faire un bloc de citation avec une source manuellement, ou si c’est même possible). Ou y a-t-il un bug quelque part dans la logique de réponse ? @tshenry

1 « J'aime »

J’ai juste essayé de citer quelques messages, et je pense qu’il y a un problème avec le nom d’utilisateur par rapport au nom complet. Probablement ce commit récent :

1 « J'aime »

Salut @JammyDodger,

Pouvez-vous me donner plus d’informations sur

Avec les paramètres du site prioriser le nom d'utilisateur dans l'UX activé et afficher le nom sur les publications désactivé, vous devriez voir le nom d’utilisateur dans la citation, et vice versa pour voir le nom complet.

1 « J'aime »

Désolé, j’aurais pu être beaucoup plus utile là. :slightly_smiling_face: J’ai juste essayé de citer plusieurs des messages de ce sujet, et il y a eu des résultats étranges dans mon compositeur :

Message de @Hifihedgehog :

[quote=", post:114, topic:13395"]nyou right! That took all of a couple minutes and I was instantly approved. Simple fixes are always nice! :smile:
[/quote]

Message de @tshenry :

[quote="Taylor, post:113, topic:13395"]You can gain access to the v1.1 API for free under the Elevated plan. You simply need to apply from your developer dashboard. I found it very quick and easy. Discourse Twitter logins worked flawlessly after that :tada:
[/quote]

(c’est le style d’une notification que @taylor a reçue)

4 « J'aime »

Ah, merci d’avoir signalé cela… oui, ce n’est pas souhaitable / prévu. Je vais examiner cela !

3 « J'aime »

La raison pour laquelle @taylor a été tagué dans cette citation (et a reçu un e-mail) est que son nom d’utilisateur - Taylor est le même que le nom complet de @tshenry - Taylor :open_mouth: qui (le nom complet) est correctement priorisé dans les citations en raison des modifications apportées dans DEV: Prioritize full name when setting active (#15820) · discourse/discourse@5a93ce4 · GitHub.

Quoi qu’il en soit, merci pour le conseil, je vais régler ça !

9 « J'aime »

Soit dit en passant, il laisse également les citations sans nom complet vides :

[quote=", post:114, topic:13395"]tu as raison ! Cela n’a pris que quelques minutes et j’ai été approuvé instantanément. Les corrections simples sont toujours les bienvenues ! :smile:
[/quote]

4 « J'aime »

Est-ce que c’est bon maintenant @isaac ?

Oui, nous avons annulé le changement, et je travaille à corriger la logique avant de fusionner à nouveau.

3 « J'aime »

En mettant à jour la logique de citation pour nous permettre de basculer entre le nom d’utilisateur ou le nom complet via un paramètre du site, j’ai rencontré un problème (une partie du problème a été notée ci-dessus), laissez-moi créer un scénario hypothétique…

  • Tim crée une publication
  • Un paramètre de site est ajouté et activé pour basculer le nom d’affichage de l’OP en nom d’utilisateur (était actif) ou en nom complet (maintenant actif)
  • Un utilisateur cite Tim dans une nouvelle publication, mais comme nous utilisons maintenant le nom complet pour les citations, notre autre utilisateur TimTam, nom complet : Tim, est informé que quelqu’un l’a cité dans une publication qu’il n’a jamais créée.

La ré-cuisson de toutes les citations est également impossible. Si ce paramètre de site a été basculé plusieurs fois, et que nous ré-cuisons plusieurs fois, une citation qui est convertie d’un nom complet -\u003e nom d’utilisateur n’est pas unique et pourrait trouver plusieurs utilisateurs.

La voie que je vois que nous empruntons est d’ajouter un attribut de données supplémentaire à la citation de data-full-name=\"true\" (ou quelque chose comme ça) pour vérifier si nous devons remplacer le nom d’utilisateur par le nom complet dans l’UX, au lieu de manipuler le data-username.

par ex.

data-username="always.users.username" data-post="1" data-topic="1" data-full-name="true"

et nous épargner les tracas de nous soucier si nous interrogeons ou envoyons des notifications sur le nom d’utilisateur ou le nom complet. Des pensées ? Cela vaut-il la peine de mettre à jour PrettyText et notre constructeur de citations pour ce changement ?

5 « J'aime »

Je préfère ne pas ajouter la prise en charge d’un basculement. C’est une décision que vous prenez au début de la configuration de votre communauté, la prise en charge d’un basculement très fluide est extrêmement coûteuse et s’accompagne d’un tas de compromis.

Si je vous cite avec le nom d’utilisateur prioritaire, nous rendons ce markdown

[quote="isaacjanzen, post:12, topic:217633"]
Thoughts?
[/quote]

Si je vous cite avec le nom prioritaire, nous rendons ce markdown

[quote="Isaac Janzen, post:12, topic:217633"]
Thoughts?
[/quote]

Il faut faire attention avec les , dans les noms complets - mais je soutiens leur suppression pour ce cas d’utilisation ou je suppose que vous pouvez introduire une astuce d’échappement.

4 « J'aime »

Dites-vous que vous nous recommanderiez d’abandonner l’ajout de la possibilité d’afficher des citations avec des noms complets ? Nous allons inévitablement rencontrer ces cas de basculement… par exemple, toute communauté existante avec une citation.

1 « J'aime »

Non, pas complètement… meta a désactivé prioritize username in ux. La citation que je viens de faire devrait être : (il manque un avatar, ce qui doit être corrigé)

Le balisage ici devrait être :

[quote="Isaac Janzen, post:14, topic:217633"]
Dites-vous que vous nous recommanderiez d'abandonner l'ajout de la possibilité d'afficher des citations avec des noms complets ?
[/quote]

Le seul changement nécessaire est de rendre le widget de citation conscient du paramètre afin qu’il remplisse le nom complet au lieu du nom d’utilisateur. Ne vous souciez pas de la migration et de l’historique.

1 « J'aime »

Je ne suis pas sûr que nous soyons sur la même longueur d’onde ici… lorsque nous avons fusionné DEV: Prioritize full name when setting active (#15820) · discourse/discourse@5a93ce4 · GitHub nous avons obtenu

  # quote.js
  # opts.displayName = true si les paramètres du site privilégient le nom complet
  const name = opts.displayName
    ? opts.name || post.name
    : opts.username || post.username;

  # construire le markdown de citation
  const params = [
    name,
    `post:${opts.post || post.post_number}`,
    `topic:${opts.topic || post.topic_id}`,
  ];

pour obtenir le résultat de

mais le problème était que la recherche d’utilisateur basée sur le nom complet cassait les citations existantes qui étaient codées en dur avec le nom d’utilisateur.

Il semble donc impossible d’ignorer

1 « J'aime »

Je suis super confus car meta a :

Alors pourquoi le nom est-il manquant dans la citation ci-dessus ? Le changement a-t-il été annulé ?

D’accord, nous devons faire plus ici :

Nous devons récupérer le nom d’utilisateur de la combinaison “post / topic” et le placer dans le markdown cuit (nous devrions le faire sans condition), sinon nous ne pourrons pas afficher les avatars pour le nom complet.

Cela nous permettra également de corriger ce cas limite, afin qu’il n’affiche pas mon avatar sur cette mauvaise citation. (ou même de mettre en évidence une mauvaise citation)

1 « J'aime »

Ah, oui

Je suis d’accord et je peux ajouter cela.

2 « J'aime »

Je suis tout à fait ouvert à la correction de quelques cas limites pendant ce temps :

  1. discordance du nom d’utilisateur
    • que faisons-nous de l’avatar ?
    • que faisons-nous du nom d’utilisateur ?
  2. discordance du nom complet
    • que faisons-nous de l’avatar ?
    • que faisons-nous du nom ?

Je pense que la meilleure chose à faire pour l’instant est de simplement “écraser”. Si le message a un nom / nom d’utilisateur, utilisez-le de préférence à celui qui a été fourni dans la citation. Cuisiner avec le nom actuel / le nom d’utilisateur actuel.

3 « J'aime »

Bien, j’ai une PR qui clarifie les choses.

Points clés

Nous passons maintenant le nom d’utilisateur lorsque

siteSettings.display_name_on_posts && !siteSettings.prioritize_username_in_ux && post.name

ainsi que le nom complet pour garantir que nous n’obtenons aucune discordance lors de la requête pour l’utilisateur / l’avatar.

par ex.

[quote="Isaac Janzen, post:3, topic:7, full:true, username:isaac.janzen"]
bing bong
[/quote]

Qu’en penses-tu @sam ?

3 « J'aime »

Je suppose que je peux accepter un changement de markdown pour que nous contournions la nécessité de nous lancer dans un trou de lapin d’une énorme aventure de sécurité. Cependant, le changement doit être hyper chirurgical.

Pouvez-vous confirmer que la nouvelle syntaxe verbeuse se produit uniquement si siteSettings.display_name_on_posts ET !siteSettings.prioritize_username_in_ux ?

[quote="Isaac Janzen, post:3, topic:7, username:isaac.janzen"]
....
[/quote]

Ce qui signifie que si vous n’activez pas à la fois display_name_on_posts ET que vous ne désactivez pas prioritize_username_in_ux

Alors l’ancien format de citation devrait rester :

[quote="isaac.janzen, post:3, topic:7"]
....
[/quote]

Je suis prêt à accepter cela comme une étape intermédiaire pour l’instant, mais notre objectif à long terme serait de supprimer ce bruit du bloc de citation (renforcer la sécurité, restreindre les abus) et de prendre en charge le format de citation abrégé que nous avons toujours eu, en résolvant la boîte de pandore de la sécurité, tout comme nous y sommes contraints maintenant pour les oneboxes en ligne, par exemple : Quoting broken when name matches username - #20 by isaac < - https://meta.discourse.org/t/quoting-broken-when-name-matches-username/217633/20?u=sam

Je mentionne @tobiaseigen ici pour plus de visibilité car cela est lié à des discussions précédentes.

En résumé :

  • Je suis d’accord pour changer le format markdown pour l’instant pour ce cas extrême - et seulement ce cas extrême - @codinghorror pour confirmer.
  • À déterminer, planifier le travail de sécurité afin que le bloc de citation devienne [quote="TOTALLY OPTIONAL WILL BE FISHED FROM POST IF SECURITY LINES UP AND INFO ON POST IS PRIORITIZED OVER THIS TEXT, post:3, topic:7"]. - nous recommandons d’attendre un peu pour cela.
3 « J'aime »

Fusionné et déployé https://github.com/discourse/discourse/pull/16078

Je peux confirmer.

3 « J'aime »