Evolution #98
ferméIntégration de données externes sur les fiches
100%
Description
Sur les fiches des EPN et GEPN, un patch était appliqué pour y afficher l'état des EPNBox.
Les informations sont récupérées en interrogeant une URL externe (webservice de boxadmin).
Ce système de source d'info externe pourrait être intégré nativement dans l'application, de manière plus généraliste.
Le fichier de configuration app.yml peut être utilisé pour définir les données à aller chercher.
Mis à jour par Grégory MARIGOT - TEICEE il y a plus de 13 ans
- Statut changé de Nouveau à In Progress
- % réalisé changé de 0 à 70
Modifications publiées sur le svn (r407) :
Mise en place des appels externes¶
La récupération de données externes se fait via un nouveau partial : global/proxyepn_external_data
Il est inclus systématiquement sur les fiches des GEPN, EPN, salles et usagers.
- object : l'objet affiché sur la fiche, dont les propriétés pourront servir à l'interrogation
- module : le type de l'objet désigné par son nom de module (
structure_group
,structure
,room
,user
)
Il se charge de lire la configuration pour voir si des données sont à inclure. Si c'est le cas, il construit le chemin pour y accéder et les affiche par une commande PHP readfile(). Le chemin utilisé peut donc être un chemin de fichier local ou une URL.
Configuration des appels externes¶
Les sources de données sont définies dans le fichier de configuration app.yml :
external_data: structure_group: path: chemin FS ou HTTP avec motif sprintf params: [ liste de noms de colonnes pour le motif ] roles: [ liste des roles ayant accès aux données ] structure: ... room: ... user: ...
En l'absence de ces informations, rien ne sera affiché par le partial.
Chaque type de fiche dispose donc de sa propre configuration, avec 3 paramètres possibles :- path (obligatoire) : le chemin de la source de données lue par le readfile() (FS ou HTTP), pouvant contenir des motifs au format sprintf qui feront appels aux paramètres définis ci-après.
- params (facultatif) : une liste de noms de propriétés de l'objet qui serviront pour compléter le motif du path (les noms doivent correspondre à des accesseurs existants de l'objet
getXXX()
). - roles (facultatif) : une liste de rôle pour limiter l'affichage des données selon le profil de l'utilisateur.
Mis à jour par Grégory MARIGOT - TEICEE il y a plus de 13 ans
- Statut changé de In Progress à Résolu
- % réalisé changé de 70 à 100
Modifications publiées sur le svn (r409) :
Mise en place des controles sur les permissions de l'utilisateur¶
Quand une source externe est définie sur une fiche, son affichage peut être restreint à certains utilisateurs uniquement :- d'après leur rôle (admin, manager, coordinator, user, visitor)
- d'après le contexte appliquable sur la fiche en question (l'élément fait-il partie du contexte EPN ou GEPN de l'utilisateur)
Ces deux controles sont utilisables indépendament (l'un, l'autre, les deux, aucun).
Un paramètre supplémentaire est utilisable dans le fichier de configuration pour spécifier le contexte exigé :
external_data: structure_group: path: chemin FS ou HTTP avec motif sprintf params: [ liste de noms de colonnes pour le motif ] roles: [ liste des roles ayant accès aux données ] context: GEPN | EPN | false structure: ... room: ... user: ...
Mis à jour par Grégory MARIGOT - TEICEE il y a plus de 13 ans
- Statut changé de Résolu à Fermé