Portails publics (WordPress) — détails techniques
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ément | Valeur |
|---|---|
| Rattachement du site à l'établissement | option de blog openent_structure_id, posée par openent-provisioning.php |
| Adresse de l'ENT | variable d'environnement OPENENT_API_BASE (serveur WordPress) |
| Import d'un document | admin_post_openent_workspace_document_importer → openent_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 attendues | fiche fonctionnelle |
| 🧪 Tests réalisés | dashboard E2E — apps/dashboard-e2e/src/modules/03_admin |
| ✅ Tests de conformité | tableau de conformité |