Signatures Discourse

Suis-je fou ou n’y a-t-il aucune validation sur l’URL de l’image de signature de l’entrée utilisateur du tout ?
En gros, un utilisateur peut entrer n’importe quoi et cela sera poussé à d’autres utilisateurs ?

Aussi, pourquoi la taille de la base de données de l’URL de la signature est-elle définie sur 32 000 ?
Pourquoi quelqu’un aurait-il besoin de 32 000 caractères pour une URL vers une image ?

Effrayant :ghost:

J’ai modifié le CSS comme suit afin de coder en dur une hauteur et une largeur maximales ;

.signature-img {
  max-width: 600px;
  max-height: 100px;
  width: auto;
  height: auto;
  display: block;
  margin: 5px 0;
}

J’ai changé la taille maximale de l’URL de signature à 250 dans plugin.rb

  register_user_custom_field_type("signature_url", :string, max_length: 250)
  register_user_custom_field_type("signature_raw", :string, max_length: 250)

J’ai ajouté ceci en bas de “on(:user_updated) do |user|” dans plugin.rb (je n’utiliserai pas le mode avancé)

    # Valider l'URL si pas en mode avancé
    if !SiteSetting.signatures_advanced_mode && user.custom_fields["signature_url"]
      url = user.custom_fields["signature_url"]

      # Validation stricte : uniquement HTTPS, uniquement certains types de fichiers image
      unless url =~ /\Ahttps:\/\/\[a-zA-Z0-9.\-\/_]+\.(png|jpe?g|gif|webp)(\?[a-zA-Z0-9=\&]+)?\z/
        Rails.logger.warn("[discourse-signatures] Rejeté signature_url invalide pour l'utilisateur #{user.id}: #{url.inspect}")
        user.custom_fields["signature_url"] = nil
        user.save
      end
    end

Si je fais quelque chose de mal ici (je n’ai jamais travaillé avec Discourse auparavant), veuillez corriger et me montrer la bonne façon de le faire.

1 « J'aime »

Parce que 250 n’est pas suffisant…

C’est tout l’intérêt d’une signature. C’est pareil pour un forum, les gens saisissent des choses et d’autres personnes les voient. Monde de fous, hein ?

5 « J'aime »

Lorsque Discourse est mis à niveau vers la version 3.5.0.beta8 (la version 3.5.0.beta9-dev pose également problème), il est constaté que l’utilisateur a modifié sa signature et ne peut pas l’enregistrer (bien qu’elle s’affiche comme enregistrée, elle ne prend pas effet). Cela fonctionne toujours normalement sur la version 3.5.0.beta7. Nous espérons une correction rapide, car de nombreux plugins de la beta7 à la beta8 sont intégrés.

2 « J'aime »

Nous avons un cas d’utilisation spécifique pour les signatures et je me demande s’il serait relativement facile d’apporter quelques modifications.

  1. Je suis d’accord pour dire que j’aimerais voir les signatures pour des groupes spécifiques dans l’interface utilisateur, je ne suis pas doué en CSS.
  2. Nous utilisons notre Discourse à la fois comme une communauté et comme un système de tickets de support. Y a-t-il un moyen d’obtenir un paramètre pour « Afficher uniquement les signatures dans X catégories » ?

Nous n’avons vraiment besoin d’elles que dans notre section de support où la plupart de nos interactions se font par e-mail.

2 « J'aime »

4 messages ont été déplacés vers un nouveau sujet : Demande de fonctionnalité : inclure la signature dans les notifications par e-mail