Project

General

Profile

Actions

API Gestion des permissions

La version 2.8 de Linea21 offre une API avec 3 types d'accès en fonction de la configuration.

Cette configuration est définie dans le fichier config.ini avec la constante API_PROVIDE qui peut prendre 3 valeurs :

  1. 0 : la fonctionnalité API est désactivée
  2. "full-access" : la fonctionnalité API est accessible à tous sans contrôle et sans distinction des utilisateurs
  3. "limited-access" : la fonctionnalité API est accessible à un ou plusieurs utilisateurs par un système de jeton ( token ).

Les deux premiers cas de figures ne nécessitent pas d'explication particulière. En revanche, la configuration de l'API en "limited-access" implique de fournir des instructions à Linea21.

Préparer un fichier de permissions pour un accès en "limited-access"

Le système utilise un fichier de permissions respectant la structure suivante, au format json :

{
  "linea21-6685453c9821b": {
    "description": "Lien avec tel établissement",
    "contact": "YYYY xxxx <yyy.xxx@etablissement.org>",
    "permissions": {
      "indicator": [
        "list",
        "info",
        "info-full",
        "values",
        "info-values",
        "last-value" 
      ],
      "level": [
        "list" 
      ],
      "status": "all" 
    }
  },
  "linea21-895223bc9878a": {
    "description": "Un autre utilisateur de l'API",
    "contact": "AAA BBB <aaa.bbb@utilisateur.org>",
    "permissions": {
      "indicator": [
        "all" 
      ],
      "level": [
        "list" 
      ]
    }
  },
}
Quelques explications sur la base du premier utilisateur :
  • le jeton ( token ) peut être généré manuellement. Ici, il est généré par utilisation de la fonction PHP uniqid() accessible en ligne.
  • les clés description et contact permettent la traçabilité de l'accès
  • la clé permissions permet de définir l'ensemble des permissions par module. A titre d'illustration ici, l'utilisateur du jeton "linea21-6685453c9821b" est autorisé à effectuer les actions suivantes pour le module indicator : "list", "info", "info-full", "values", "info-values", "last-value". C'est à dire l'ensemble des actions disponibles, ce qui aurait pu être remplacé par l'instruction simple "all" comme pour le deuxième jeton
  • par défaut, seuls les contenus publics sont retournés (P). Il est possible toutefois de récupérer les contenus en brouillon (D), archivés publiquement (PA), archivés - administration seule (AA)

Enregistrer le fichier dans le thème actif

Pour des raisons évidentes, il a été décidé d'embarquer ce fichier de configuration dans le thème public actif. Aussi, il est à localiser dans /templates/public/[theme-actif]/override/api/ .

Un simple fichier nommé api-permissions.json suffit. Toutefois, pour des raisons de sécurité, nous vous invitons à suivre la charte de nommage suivante : api-permissions-[chaine-de-caracteres-aleatoires].json Exemple : api-permissions-gFDD45GBr58.json

Updated by Simon 13 days ago · 3 revisions