Projet

Général

Profil

Actions

Evolution #98

fermé

Intégration de données externes sur les fiches

Ajouté par Grégory MARIGOT - TEICEE il y a plus de 13 ans. Mis à jour il y a plus de 13 ans.

Statut:
Fermé
Priorité:
Normal
Version cible:
Début:
25/03/2011
Echéance:
% réalisé:

100%

Temps estimé:
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.


Demandes liées 1 (0 ouverte1 fermée)

Lié à Anomalie #66: Visualisation Etat de la box EPN en mode usagerFerméGrégory MARIGOT - TEICEE01/07/2010

Actions

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.

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.

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é
Actions

Formats disponibles : Atom PDF