Skip to main content

Portails publics (WordPress) — détails techniques

Fiche fonctionnelle

Description et fonctionnalités de ce module : Portails publics (WordPress).

Couverture de tests

Les fonctionnalités d'administration de cette application sont couvertes par les tests e2e du dashboard — dossier apps/dashboard-e2e/src/modules/03_admin.

Tests e2e dans 08_portails_publics_wordpress.spec.ts — voir le détail

Portails publics WordPress 08_portails_publics_wordpress.spec.ts

  • page accessible aux profils administrateurs
  • vue super-admin : onglets « Sites d'établissements » et « Catalogue des chartes »
  • vue chef d'établissement : configuration du portail de son établissement

➡️ Statut dans le dashboard E2E

Documents du workspace publiés

Parcours utilisateur : Insérer un document de l'ENT dans le portail public. Mécanique de publication côté ENT (routes, droits, champs Mongo) : Espace documentaire — détails techniques. Pas encore couvert par les tests e2e.

Le mu-plugin connectors/wordpress-connector/mu-plugins/openent-workspace-documents.php ajoute la page d'administration upload.php?page=openent-workspace-documents (Médias → Documents du workspace, capacité upload_files). Il appelle en lecture, sans jeton, GET {OPENENT_API_BASE}/workspace/pub/structure/{structureId}/documents — endpoint anonyme côté ENT, cohérent avec le fait que les documents listés sont eux-mêmes servis anonymement. C'est l'inverse du pont openent-medias.php, qui expose des routes WordPress consommées par l'ENT.

ÉlémentValeur
Rattachement du site à l'établissementoption de blog openent_structure_id, posée par openent-provisioning.php
Adresse de l'ENTvariable d'environnement OPENENT_API_BASE (serveur WordPress)
Import d'un documentadmin_post_openent_workspace_document_importeropenent_medias_import() (attachment WordPress normal, pas de lien symbolique)
Marquage d'un média importépost meta _openent_media_source = workspace:<documentId> — sert à afficher « Déjà importé »

Deux points de robustesse : l'URL soumise à l'import est revalidée comme préfixée par OPENENT_API_BASE (le formulaire est pourtant rendu depuis cette même API — il s'agit d'empêcher un POST forgé de faire télécharger une URL arbitraire par le serveur, SSRF) ; et toute indisponibilité (établissement non rattaché, API injoignable, réponse non 200) retourne une liste vide plutôt qu'une erreur bloquante, la page affichant alors le message correspondant.

Les dates de publication arrivent selon l'endpoint en JSON étendu Mongo ({"$date": <ms>}) ou en chaîne ISO 8601 ; openent_workspace_format_date() accepte les deux et renvoie '' sinon.

Conformité

Évaluation au référentiel Open ENT NG (module wordpress-connector).

Maillon de la chaîne qualitéRéférence
🎯 Fonctionnalités attenduesfiche fonctionnelle
🧪 Tests réalisésdashboard E2E — apps/dashboard-e2e/src/modules/03_admin
✅ Tests de conformitétableau de conformité