Sortie de YesWiki Doryphore 4.7.0

Une release de sécurité, d’accessibilité et de corrections de bugs, mise à jour fortement recommandée. Merci @kaelvar et @MelanieMichel pour leurs contributions

Sécurité

  • Correction de 18 failles remontées sur github, cf. Security Advisories · YesWiki/yeswiki · GitHub
  • Nouvel anti-bot : ALTCHA (un petit calcul fait par le navigateur avant l’envoi), un jeton signé à usage unique et un champ piège invisible protègent tous les formulaires (pages, fiches Bazar, commentaires, contact, abonnements, inscription, mot de passe perdu). Seuls les admins ne sont pas concernés. Le paramètre altcha de la page « Fichier de conf » permet de désactiver le calcul
  • Le captcha n’est plus enregistré dans les fiches
  • La synchronisation ActivityPub demande un jeton CSRF

Nouvelles fonctionnalités
Bazar:

  • Nouvelle syntaxe pour les filtres query : AND, OR et des parenthèses, par exemple (bf_ville=Nantes OR bf_ville=Rennes) AND bf_type=asso. L’éditeur du composant « Afficher les données d’un formulaire » permet d’ajouter ces conditions sans écrire de code. L’ancienne syntaxe (| et ,) marche toujours et une migration réécrit les requêtes existantes
  • Les expressions régulières dans query s’écrivent entre slashes (bf_titre=/^Toto/) et ignorent la casse et les accents
  • Les dates d’événement d’une nouvelle fiche commencent avec les heures (début à l’heure pleine suivante, fin une heure après). L’option « Saisie par défaut » du champ date permet de choisir entre heures et jours
  • L’action checkcontent repère les fiches qui utilisent encore d’anciens identifiants de champs

Contact:

  • Signature des mails avec DKIM, avec les paramètres contact_dkim_domain, contact_dkim_selector et contact_dkim_private_key (voir la doc webmaster)
  • Les abonnements aux mails périodiques ne passent plus par des groupes : un utilisateur ne peut plus s’ajouter à un groupe utilisé dans des droits d’accès. Une migration convertit les abonnements existants
  • Chaque page envoyée par mail a son propre sujet, et une page supprimée n’est plus envoyée

Accessibilité

  • Champs de formulaire nommés, nombre de résultats annoncé, filtres utilisables au clavier
  • Templates Bazar dynamiques, cartes, fiches et pagination mieux lus par les lecteurs d’écran ; le focus reste en place sur les boutons premier/dernier de la pagination merci @kaelvar

Correction de bugs
Bazar:

  • Après l’enregistrement d’une fiche, on arrive sur la fiche ou là où l’édition avait commencé, avec un message
  • Les formulaires de fiche ouverts dans une fenêtre modale s’enregistrent
  • Enregistrer un gros formulaire ne dépasse plus max_input_vars
  • Les champs à accès restreint gardent leur valeur à l’enregistrement
  • Les fiches prennent le thème et le preset de leur formulaire
  • Un champ nommé theme, squelette, style ou preset ne fait plus planter l’enregistrement
  • « Tout cocher », les cases à cocher et les boutons radio n’agissent que sur le formulaire en cours, et deux formulaires sur une page ont des identifiants différents (#628)
  • Filtrer et trier depuis l’URL garde les résultats (#1231), les filtres ne s’appliquent qu’au premier niveau (#845), l’ancre d’URL marche avec les onglets et les facettes
  • Les champs de fiches liées arrivent dans les templates de fiches personnalisés (#1271)
  • Les fiches affichées via l’API chargent le css de leur template
  • L’éditeur de formulaire affiche les champs conditionnels avec leur libellé
  • Les numéros de semaine ne recouvrent plus le calendrier sur mobile
  • Les geojson sans latitude/longitude ne cassent plus la carte
  • L’import de listes depuis l’URL d’un autre wiki marche de nouveau
  • Plus d’avertissement PHP dans les champs de sélection de fiche merci @MelanieMichel

Coeur:

  • Calendriers et cartes s’affichent dans les accordéons
  • Le bouton d’édition et le menu des composants marchent dans les zones de texte des fiches (#1112), et éditer une carte garde sa vue de départ
  • Le bouton insérer est bloqué pendant l’envoi d’un fichier
  • Le sommaire (TOC) ne recouvre plus le texte sur téléphone
  • Le texte reste dans une section encadrée sans couleur
  • Le sélecteur de police s’ouvre même si la police actuelle
  • Les messages (toasts) s’affichent avec le menu vertical
  • Connexion : le bouton prend la classe btnclass donnée, de passe accepte les caractères spéciaux (#1353)
  • Les listes indentées avec un mélange de tabulations et d’espaces sont bien formatées
  • Mises à jour : confirmation avant de supprimer une extensions et thèmes s’installent dans le wiki en cours (utile pour les fermes)
  • Installation : l’URL de base suit le mode de réécriture
  • Les modules javascript importés sont versionnés : après une mise à jour, le navigateur ne mélange plus anciens et nouveaux fichiers
  • Le paquet de release porte son vrai numéro de version

Documentation

  • Exigences PHP et base de données alignées sur composer.json merci @kaelvar
  • Exemples de configuration nginx pour un wiki dans un sous dossier

Notes de mise à jour

  • Les paramètres use_hashcash et use_nospam n’existent plus, l’anti-bot ALTCHA les remplace
  • Le calcul ALTCHA ne tourne que sur un wiki en https : en http le jeton et le champ piège protègent les formulaires
  • Les membres connectés passent aussi par l’anti-bot ; seuls les admins en sont dispensés
  • Mises à jour des bibliothèques php et javascript, et du theme Margot