Links de Cabeçalho Personalizado recusam URL Matrix

Ao atualizar para a versão 3.4, o componente de tema “Custom Header links” recusou-se a atualizar devido a um link do Matrix como https://matrix.to/#/#matrix-meta-chat:fedoraproject.org. Erro: A propriedade em JSON Pointer '/3/url' deve ser uma URL válida.

Assim que este link foi removido, a atualização ocorreu sem problemas, mas adicionar o link de volta foi impossível.

(Solução alternativa: crie um permalink /matrix que redirecione para https://matrix.to/#/#matrix-meta-chat:fedoraproject.org e, em seguida, adicione /matrix como um link de cabeçalho personalizado)

Ainda assim, pode ser bom tornar isso um pouco mais flexível. Aparentemente, o formato do link é aceitável para um permalink.

3 curtidas

O duplo # faz com que a validação da configuração do objeto falhe no núcleo (não neste TC em si).

URI inválida (não é URI?): "https://matrix.to/#/#matrix-meta-chat:fedoraproject.org" (URI::InvalidURIError)

Não é estritamente uma URI válida, então você precisaria codificar o fragmento.
Aqui; usar https://matrix.to/#/%23matrix-meta-chat:fedoraproject.org funcionará.

Olhando o código:
https://github.com/discourse/discourse/blob/main/lib/theme_settings_object_validator.rb#L191-L193
is_valid_url é definido aqui:

Você pode ver que eles já têm outra função para lidar com essa situação e está sendo usada em outros lugares:

Eu acho razoável usar relaxed_parse para a validação de URL do objeto de tema.
Por exemplo: if validations&.dig(:url) && !UrlHelper.relaxed_parse?(value)

6 curtidas