Evolution #98

Intégration de données externes sur les fiches

Added by Grégory MARIGOT - TEICEE about 12 years ago. Updated about 12 years ago.

Status:Fermé Start date:03/25/2011
Priority:Normal Due date:
Assignee:Grégory MARIGOT - TEICEE % Done:

100%

Category:-
Target version:ProxyEPN 2.0
Version ProxyEPN:2.0 Beta

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.


Related issues

related to Anomalie #66: Visualisation Etat de la box EPN en mode usager Fermé 07/01/2010

Associated revisions

Revision 407
Added by Grégory MARIGOT - TEICEE about 12 years ago

NEW #98: Affichage de données externes paramétrables sur les fiches

Revision 409
Added by Grégory MARIGOT - TEICEE about 12 years ago

NEW #98: Ajout de contrôles optionnels sur le rôle et le contexte de l'utilisateur pour l'affichage des données externes sur les fiches

History

Updated by Grégory MARIGOT - TEICEE about 12 years ago

  • Status changed from Nouveau to In Progress
  • % Done changed from 0 to 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.

Le partial demande en paramètre :
  • 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.

Updated by Grégory MARIGOT - TEICEE about 12 years ago

  • Status changed from In Progress to Résolu
  • % Done changed from 70 to 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:
      ...

Updated by Grégory MARIGOT - TEICEE about 12 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF