Project

General

Profile

Actions

Feature #13043

closed

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

Added by David Lesimple about 2 months ago. Updated about 1 month ago.

Status:
Closed
Priority:
Normal
Start date:
05/09/2022
Due date:
% Done:

100%

Estimated time:
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.

Files

eventHTML.png (35.9 KB) eventHTML.png David Lesimple, 05/09/2022 02:29 PM
Actions #2

Updated by Nicolas Eysseric about 2 months ago

  • Status changed from New to Assigned
  • Assignee set to Yohann Chastagnier
Actions #3

Updated by Yohann Chastagnier about 2 months ago

  • Status changed from Assigned to 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.

Actions #4

Updated by David Lesimple about 2 months ago

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.

Actions #5

Updated by Yohann Chastagnier about 2 months ago

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.

Actions #6

Updated by Miguel Moquillon about 2 months ago

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.

Actions #7

Updated by Miguel Moquillon about 2 months ago

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.)

Actions #8

Updated by Miguel Moquillon about 2 months ago

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).

Actions #9

Updated by Yohann Chastagnier about 2 months ago

  • Tracker changed from Bug to Feature
  • Status changed from Feedback to Resolved
  • Target version set to Version 6.3
  • % Done changed from 0 to 100
  • Navigateur deleted (Tous)
  • Votre version de Silverpeas deleted (6.3-BUILD)
  • Votre base de données deleted (Toutes)

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 :
Actions #10

Updated by Miguel Moquillon about 1 month ago

  • Status changed from Resolved to Integration in progress...
Actions #11

Updated by Miguel Moquillon about 1 month ago

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
Actions #12

Updated by Yohann Chastagnier about 1 month ago

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.

Actions #13

Updated by Yohann Chastagnier about 1 month ago

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.

Actions #14

Updated by Miguel Moquillon about 1 month ago

  • Status changed from Integration in progress... to Closed

well done

Actions

Also available in: Atom PDF