Projet

Général

Profil

Actions

Feature #13043

fermé

Le contenu riche d'un événement d'un Agenda Externe (Google) est affiché avec les balises HTML

Ajouté par David Lesimple il y a presque 2 ans. Mis à jour il y a presque 2 ans.

Statut:
Closed
Priorité:
Normal
Assigné à:
Début:
09/05/2022
Echéance:
% réalisé:

100%

Temps estimé:
Livraison en TEST:
Livraison en PROD:

Description

  • Résultat observé :
    Le code HTML est affiché :
  • Résultat attendu :
    Le code HTML devrait être interprété et les liens cliquables.

Fichiers

eventHTML.png (35,9 ko) eventHTML.png David Lesimple, 09/05/2022 14:29

Mis à jour par Nicolas Eysseric il y a presque 2 ans

  • Statut changé de New à Assigned
  • Assigné à mis à Yohann Chastagnier

Mis à jour par Yohann Chastagnier il y a presque 2 ans

  • Statut changé de Assigned à Feedback

Il n'y a ici en réalité pas de BUG.

Dans la synchronisation des calendriers, ce n'est pas le contenu riche qui est synchronisé, mais le champs description.
Or dans Silverpeas, le champs description est un champs texte. Il est par conséquent normal qu'un contenu HTML soit affiché de la sorte.

S'il faut présenter du contenu HTML à ce niveau, pour les calendriers synchronisés, alors il s'agit d'une évolution.

Je précise à ce niveau que l'échappement du contenu HTML de ce champs a aussi la vocation d'assurer un certain niveau de sécurité, du fait que ces contenus proviennent de sources qui ne peuvent pas être maîtrisées.
En clair, afficher le HTML interprété pour cette donnée "description" demande de consciemment intégrer un trou de sécurité dans Silverpeas.

Il est possible d'imaginer de mettre en place un paramètre général permettant de rendre possible l'affichage d'un contenu HTML non échappé pour cette donnée.
Ce paramètre serait paramétré par défaut de sorte d'observer l'actuel comportement, et serait mis à jour en concertation avec les responsables des plates-formes Silverpeas.

Mis à jour par David Lesimple il y a presque 2 ans

Techniquement ok c'est logique, mais fonctionnellement c'est un bug (ou mauvaise adéquation avec ce qu'on trouve ailleurs)
En effet, l'événement dans Silverpeas intègre un titre, une description (au format texte) et en plus un contenu complémentaire en wysiwyg.
il ne devrait y avoir qu'un seul champ description, en contenu riche. Il y a un champ de trop donc.

Mis à jour par Yohann Chastagnier il y a presque 2 ans

L'événement Silverpeas est une contribution.
De fait, au même titre qu'une publication, il y a un titre et une description.
Ce sont ces derniers champs qui sont synchronisés respectivement via le standard iCal.

L'événement peut également avoir un contenu. Aujourd'hui si contenu il y a, c'est forcément un WYSIWYG.
Il est exclusivement maîtrisé par les utilisateurs de la plate-forme.
Aussi, il pourrait être imaginé que d'autres contenus, comme pour une publication de la GED, puissent être renseignés sur un événement dans l'avenir.

Ne pas oublier également les aspects sécurités avancés dans ma note précédente.

Mis à jour par Miguel Moquillon il y a presque 2 ans

Une idée pourrait aussi être que lors d'une synchro avec un agenda extérieur, si un événement comprend une description avec du HTML, alors c'est le WYSIWYG de l'événement qui est valorisé avec ce contenu riche.

Mis à jour par Miguel Moquillon il y a presque 2 ans

Ou encore, tout le contenu riche de l'événement importé est échappé : plus de mise en forme, du texte brut classique. (A la rigueur, les paragraphe peuvent être pris en compte comme des sauts à la ligne.)

Mis à jour par Miguel Moquillon il y a presque 2 ans

Par contre, je suis d'accord avec Yohann sur le pb de sécu potentiel. Ici, dans l'exemple donné, la description comporte un lien et pour moi, toujours pour des raisons de sécu, j'interdirais obligatoirement de tels liens si ce n'est d'afficher en texte brut l'URL (autrement dit qu'il ne soit pas cliquable).

Mis à jour par Yohann Chastagnier il y a presque 2 ans

  • Tracker changé de Bug à Feature
  • Statut changé de Feedback à Resolved
  • Version cible mis à Version 6.3
  • % réalisé changé de 0 à 100
  • Navigateur Tous supprimé
  • Votre version de Silverpeas 6.3-BUILD supprimé
  • Votre base de données Toutes supprimé

La fonctionnalité de synchronisation d'un agenda avec un distant a évoluée afin de permettre l'affichage de la description en HTML, en toute sécurité, d'un événement lié à un agenda distant.

Lors de la synchronisation d'un événement, l'information de description est traitée par un service en charge de garder uniquement les parties utiles et sûres d'un contenu HTML. Ainsi, les données HTML inutilisées ne sont pas enregistrées dans les données Silverpeas.

A l'affichage de cette données de description, pour événement lié à un agenda distant, cette donnée de description est de nouveau traitée, ce coup-ci côté navigateur WEB par une fonctionnalité AngularJS (HTML Sanitize).

Le croisement de ces deux traitements devrait assurer une sécurité confortable quant aux possibles données transmises dans le format ICAL.

La gestion d'un événement créé dans un agenda non synchronisé reste inchangée.
Il n'y a pas la possibilité de renseigner une description en HTML.

PRs :

Mis à jour par Miguel Moquillon il y a presque 2 ans

  • Statut changé de Resolved à Integration in progress...

Mis à jour par Miguel Moquillon il y a presque 2 ans

Des retours :

J'ai un agenda Google avec un événement existant dont la description est en HTML avec du texte en gras et un lien vers https://www.silverpeas.org.
Un clic sur le lien affiche la page web dans le body et non dans un nouvel onglet. Ce qui a pour conséquence les points suivants :

  1. Aucune des fonctions de Silverpeas marchent : je suis obligé de rafraîchir la page
  2. Une synchro explicite de l'agenda ne marche plus ; j'ai l'exception suivante :
java.lang.NoClassDefFoundError: Could not initialize class org.silverpeas.core.contribution.content.wysiwyg.service.directive.SanitizeDirective

Mis à jour par Yohann Chastagnier il y a presque 2 ans

Merci de bien vouloir me transmettre par mail un fichier texte contenant le contenu exact qui permet de révéler les retours ci-dessous.

Mis à jour par Yohann Chastagnier il y a presque 2 ans

Je pensais me reposer sur la synchronisation automatique des calendriers distants pour que les contenus HTML des événements déjà existants soient réajustés.
C'était une erreur, car aucune modification n'est enregistrée dans Silverpeas tant qu'aucune modification n'est détectée dans les données du calendrier distant.
Un traitement a été ajouté afin de prendre en charge ces événements.

Mis à jour par Miguel Moquillon il y a presque 2 ans

  • Statut changé de Integration in progress... à Closed

well done

Actions

Formats disponibles : Atom PDF