Citação quebrada quando o nome corresponde ao nome de usuário

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

Recebi um e-mail sobre isso e fiquei muito confuso, pois não me lembrava de ter feito uma postagem como essa.

Estou curioso para saber como o “taylor” foi trocado aqui na citação da resposta? Isso é algum erro de edição manual (não tenho certeza de como fazer um bloco de citação com uma fonte manualmente, ou se isso é sequer possível). Ou existe algum bug na lógica de resposta? @tshenry

1 curtida

Acabei de tentar citar algumas postagens e acho que algo estranho está acontecendo com o nome de usuário versus o nome completo. Provavelmente este commit recente:

1 curtida

Olá @JammyDodger,

você pode me dar mais informações sobre

Com as configurações do site prioritize username in ux ativadas e display name on posts desativadas, você deve ver o nome de usuário na citação, e vice-versa para ver o nome completo.

1 curtida

Desculpe, eu poderia ter sido muito mais útil lá. :slightly_smiling_face: Acabei de tentar citar várias das postagens neste tópico, e houve alguns resultados estranhos no meu composer:

Postagem de @Hifihedgehog:

[quote=", post:114, topic:13395"]você está certo! Isso levou apenas alguns minutos e fui aprovado instantaneamente. Correções simples são sempre boas! :smile:
[/quote]

Postagem de @tshenry:

[quote="Taylor, post:113, topic:13395"]Você pode obter acesso à API v1.1 gratuitamente no plano Elevated. Você simplesmente precisa se inscrever no seu painel de desenvolvedor. Achei muito rápido e fácil. Os logins do Twitter do Discourse funcionaram perfeitamente depois disso :tada:
[/quote]

(esse é o estilo de um que @taylor recebeu uma notificação)

4 curtidas

Ah, obrigado por apontar isso… sim, isso não é desejável / pretendido. Vou investigar isso!

3 curtidas

Portanto, a razão pela qual @taylor foi marcado nesta citação (e recebeu um e-mail) é porque seu nome de usuário - Taylor é o mesmo que o nome completo de @tshenry - Taylor :open_mouth:, que (o nome completo) está sendo priorizado corretamente nas citações devido às alterações adicionadas em DEV: Prioritize full name when setting active (#15820) · discourse/discourse@5a93ce4 · GitHub.

De qualquer forma, obrigado pela dica, vou consertar isso!

9 curtidas

Para constar, também deixa citações sem nomes completos em branco:

[quote=", post:114, topic:13395"]você está certo! Levou apenas alguns minutos e fui aprovado instantaneamente. Correções simples são sempre boas! :smile:
[/quote]

4 curtidas

Estamos bem com isso agora, @isaac?

Sim, revertemos a alteração e estou trabalhando para corrigir a lógica antes de mesclar novamente.

3 curtidas

Ao atualizar a lógica de citação para permitir que alternemos entre nome de usuário ou nome completo por meio de uma configuração do site, encontrei um problema (parte do problema foi observada acima), deixe-me criar um cenário hipotético…

  • Tim cria uma postagem
  • A configuração do site é adicionada e ativada para alternar o nome de exibição do OP para nome de usuário (estava ativo) ou nome completo (agora ativo)
  • Um usuário cita Tim em uma nova postagem, mas como agora estamos usando o nome completo para citações, nosso outro usuário TimTam, nome completo: Tim, é notificado de que alguém o citou em uma postagem que ele nunca criou.

Refazer todas as citações também não é uma opção. Se essa configuração do site foi alternada várias vezes e refizemos várias vezes, uma citação que está sendo convertida de nome completo -\u003e nome de usuário não é única e pode encontrar vários usuários.

O caminho que vejo para seguirmos é adicionar um atributo de dados adicional à citação de data-full-name="true" (ou algo assim) para verificar se devemos substituir o nome de usuário pelo nome completo na UX, em vez de manipular o data-username.

ex.

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

e nos pouparmos do incômodo de nos preocuparmos se estamos consultando ou enviando notificações sobre nome de usuário ou nome completo. Pensamentos? Vale a pena o esforço de atualizar o PrettyText e nosso construtor de citações para essa mudança?

5 curtidas

Prefiro não adicionar suporte para uma transição. Esta é uma decisão que você toma no início da configuração da sua comunidade, suportar uma transição super suave é extremamente caro e vem com uma série de desvantagens.

Se eu te citar com o nome de usuário priorizado, renderizamos este markdown

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

Se eu te citar com o nome priorizado, renderizamos este markdown

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

É preciso ter cuidado com vírgulas em nomes completos - mas eu apoio removê-las para este caso de uso ou, imagino que você possa introduzir algum truque de escape.

4 curtidas

Você está dizendo que recomendaria que desistíssemos de tentar adicionar a capacidade de exibir citações com nomes completos? Nós inevitavelmente vamos nos deparar com esses casos de troca… por exemplo, qualquer comunidade existente com uma citação.

1 curtida

Não, não completamente… meta tem prioritize username in ux desativado. A citação que acabei de fazer deveria ser: (que está faltando um avatar que precisa ser corrigido)

A marcação aqui deveria ser:

[quote="Isaac Janzen, post:14, topic:217633"]
Você está dizendo que recomendaria que desistíssemos de tentar adicionar a capacidade de exibir citações com nomes completos?
[/quote]

A única alteração necessária é fazer com que o widget de citação esteja ciente da configuração para preencher o nome completo em vez do nome de usuário. Não se preocupe com migração e histórico.

1 curtida

Não tenho certeza se estamos na mesma página aqui… quando mesclamos DEV: Prioritize full name when setting active (#15820) · discourse/discourse@5a93ce4 · GitHub, alcançamos

  # quote.js
  # opts.displayName = true if site settings prioritize full name
  const name = opts.displayName
    ? opts.name || post.name
    : opts.username || post.username;

  # build quote markdown
  const params = [
    name,
    `post:${opts.post || post.post_number}`,
    `topic:${opts.topic || post.topic_id}`,
  ];

para obter a saída de

mas o problema era que a busca do usuário com base no nome completo estava quebrando citações existentes que foram criadas com nome de usuário.

Portanto, parece impossível ignorar

1 curtida

Estou super confuso porque o meta tem:

Então, por que o nome está faltando na citação acima? A alteração foi revertida?

Concordo que precisamos fazer mais aqui:

Precisamos pegar o nome de usuário da combinação “post / topic” e colocá-lo no markdown cozido (devemos fazer isso incondicionalmente), caso contrário, não poderemos exibir avatares para o nome completo.

Isso também nos permite corrigir este caso extremo, para que não mostre meu avatar nesta citação incorreta. (ou até mesmo destaque uma citação incorreta)

1 curtida

Ah, sim

Concordo e posso adicionar isso.

2 curtidas

Estou totalmente aberto a corrigir alguns casos extremos enquanto isso:

  1. Incompatibilidade de nome de usuário
    • o que fazemos sobre o avatar?
    • o que fazemos sobre o nome de usuário?
  2. Incompatibilidade de nome completo
    • o que fazemos sobre o avatar?
    • o que fazemos sobre o nome?

Acho que a melhor coisa a fazer por enquanto é apenas “substituir”. Se a postagem tiver um nome / nome de usuário, use-o em vez do que foi fornecido na citação. Cozinhe com o nome atual / nome de usuário atual.

3 curtidas

Certo, tenho um PR aberto que esclarece as coisas.

Principais pontos

Agora passamos o nome de usuário quando

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

bem como o nome completo para garantir que não tenhamos incompatibilidades ao consultar o usuário / avatar.

ex.

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

Quais são seus pensamentos @sam?

3 curtidas

Acho que posso aceitar uma alteração no markdown para que possamos contornar a necessidade de entrar em um buraco de coelho de uma enorme aventura de segurança. No entanto, a alteração precisa ser hiper cirúrgica.

Você pode confirmar que a nova sintaxe verbosa só acontece se ambos siteSettings.display_name_on_posts E !siteSettings.prioritize_username_in_ux?

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

Significando que se você não habilitar ambos display_name_on_posts E desabilitar prioritize_username_in_ux

Então o formato antigo de citação deve permanecer:

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

Estou disposto a aceitar isso como um passo intermediário por enquanto, mas nosso objetivo de longo prazo seria remover esse ruído do bloco de citação (apertar a segurança, restringir o abuso) e apoiar o formato de citação abreviado que sempre tivemos, trabalhando através da lata de cobras de segurança, assim como somos forçados a fazer agora para oneboxes inline, por exemplo: Quoting broken when name matches username - #20 by isaac < - https://meta.discourse.org/t/quoting-broken-when-name-matches-username/217633/20?u=sam

Mencionando @tobiaseigen aqui para visibilidade, pois isso se relaciona com discussões anteriores.

Resumindo:

  • Na minha opinião, OK mudar o formato do markdown por enquanto para este caso extremo - e apenas este caso extremo - @codinghorror para confirmar.
  • A definir agendar trabalho de segurança para que o bloco de citação se torne [quote="TOTALMENTE OPCIONAL SERÁ PESCADO DO POST SE A SEGURANÇA SE ALINHAR E AS INFORMAÇÕES NO POST FOREM PRIORIZADAS SOBRE ESTE TEXTO, post:3, topic:7"]. - recomendamos esperar um pouco para isso.
3 curtidas

Mesclado e implantado DEV: Prioritize full name when display_name_on_posts active by janzenisaac · Pull Request #16078 · discourse/discourse · GitHub

Eu posso confirmar.

3 curtidas