Commit af81c3f2 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Merge remote-tracking branch 'origin/kusanagi' into connor-payments

parents 4650c544 e5de3a1c
Loading
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
# 📢 CHANGEMENTS (MASTER/STARLING)
# 📢 CHANGEMENTS
## 2026

### Février
- [kusanagi] Ajout d'une option pour afficher le module "TODOS"

### Janvier
 - [kusanagi] Ajout d'un module "TODOS" sur la page d'accueil avec les jalons et les versements en retard.

## 2025

### Décembre
 - [kusanagi] Le calcule des notifications inclus un contrôle sur les Jalons à faire et les versements en retard

### Juillet
 - [kusanagi] MAJ Vite / Script d'update / Docker
 - [kusanagi] (signature - ESUP) Ajout de la ligne d'exemple `token` si votre ESUP utilise les tokens
+190 −3
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ Oscar dispose d'un API ouverte permettant d'interoger les données dans **Oscar*

Pour activer cette fonctionnalité, vous devez vous rendre dans l'interface d'administration.

![Configuration de l'API oscar](images/oscar-api.png)
![Configuration de l'API oscar](../images/oscar-api.png)

> Si l'option n'est pas disponible, vérifier votre version de Oscar (v2.11 "Macclane" minimum) et que vous disposer des privilèges suffisants

@@ -15,16 +15,203 @@ Pour activer cette fonctionnalité, vous devez vous rendre dans l'interface d'ad

L'inferface de gestion permet de voir les différentes clef d'accès disponibles dans Oscar : 

![Configuration de l'API oscar](images/oscar-api-list.png)
![Configuration de l'API oscar](../images/oscar-api-list.png)

Cette interface permet de configurer les niveaux d'accès ainsi que les différents API disponibles.

![Configuration de l'API oscar](images/oscar-api-fiche.png)
![Configuration de l'API oscar](../images/oscar-api-fiche.png)
 

## Accès

Les données seront accessibles via les URL : 
 - Liste des personnes : https://oscar.votreuniv.fr/api/persons
 - Personne seule : https://oscar.votreuniv.fr/api/persons/IDPERSON
 - Liste des organisations : https://oscar.votreuniv.fr/api/organizations
 - Orgnisation seule : https://oscar.votreuniv.fr/api/organizations/IDORGANIZATION

L'identification se fait par le mécanisme basic access authentication d'HTTP, c'est-à-dire qu'il faut envoyer avec sa requête un HEADER ```Authorization: Basic credentials```, où ```credentials``` est le résultat de l'encodage en Base64 de l'identifiant et du mot de passe séparés par un caractère deux points ```:```.
Exemple :

```bash
CLIENT_ID=MON_IDENTIFIANT CLIENT_SECRET=MON_MOT_DE_PASSE ENCODED="$( echo -n $CLIENT_ID:$CLIENT_SECRET | base64 -w 0 )"; curl --request GET --url 'https://oscar.votreuniv.fr/api/persons' --header "Authorization: Basic $ENCODED"
```

## Champs retournés par défaut

### API persons

Requête
```bash
CLIENT_ID=MON_IDENTIFIANT CLIENT_SECRET=MON_MOT_DE_PASSE ENCODED="$( echo -n $CLIENT_ID:$CLIENT_SECRET | base64 -w 0 )"; curl --request GET --url 'https://oscar.votreuniv.fr/api/persons' --header "Authorization: Basic $ENCODED"
```

Réponse
```json
{
  "version": "v2.16.0 \"Connor\"",
  "datecreated": "2026-02-12T11:59:43+01:00",
  "time": 1.3344779014587402,
  "total": 1,
  "persons": [
    {
      "uid": "123456",
      "login": "",
      "firstname": "Euphrasie",
      "lastname": "ANTHUSE",
      "displayname": "Euphrase ANTHUSE",
      "mail": "euphrasie.anthuse@votreuniv.fr",
      "civilite": "",
      "preferedlanguage": "",
      "status": "",
      "affectation": "LABOSUP",
      "structure": "109 boulevard du Maréchal Juin , 14000 Caen",
      "inm": "",
      "phone": "",
      "birthday": "",
      "datefininscription": "",
      "datecreated": "2023-05-10T18:47:52+02:00",
      "dateupdated": "2023-05-10T18:47:52+02:00",
      "datecached": "2023-05-10T18:47:52+02:00",
      "text": "Euphrase ANTHUSE",
      "mailMd5": "615c6fb49a9eb1d913a8195720f1f9ee",
      "ucbnSiteLocalisation": "109 boulevard du Maréchal Juin , 14000 Caen",
      "groups": null,
      "roles": []
    }
  ]
}
```


### API person

Requête
```bash
CLIENT_ID=MON_IDENTIFIANT CLIENT_SECRET=MON_MOT_DE_PASSE ENCODED="$( echo -n $CLIENT_ID:$CLIENT_SECRET | base64 -w 0 )"; curl --request GET --url 'https://oscar.votreuniv.fr/api/persons/123456' --header "Authorization: Basic $ENCODED"
```

Réponse
```json
{
  "version": "v2.16.0 \"Connor\"",
  "datecreated": "2026-02-12T11:53:48+01:00",
  "time": 0.020016908645629883,
  "uid": "123456",
  "person": {
    "uid": "123456",
    "login": "apollinaris241",
    "firstname": "WILHELM",
    "lastname": "APOLLINARIS",
    "displayname": "WILHELM APOLLINARIS",
    "mail": "wilhelm.apollinaris@votreuniv.fr",
    "civilite": "",
    "preferedlanguage": "",
    "status": "",
    "affectation": "UFR de Sciences Économiques, de Gestion, de Géographie et d'Aménagement des Territoires",
    "structure": "",
    "inm": "",
    "phone": null,
    "birthday": "",
    "datefininscription": "",
    "datecreated": "2024-03-08T07:32:03+01:00",
    "dateupdated": "2024-03-08T07:32:03+01:00",
    "datecached": "2024-03-08T07:32:03+01:00",
    "text": "WILHELM APOLLINARIS",
    "mailMd5": "fa12a139z2b33ca2019z1e3f75ae1c06",
    "ucbnSiteLocalisation": "",
    "groups": [],
    "roles": []
  }
}
```


### API organizations

Requête
```bash
CLIENT_ID=MON_IDENTIFIANT CLIENT_SECRET=MON_MOT_DE_PASSE ENCODED="$( echo -n $CLIENT_ID:$CLIENT_SECRET | base64 -w 0 )"; curl --request GET --url 'https://oscar.votreuniv.fr/api/organizations' --header "Authorization: Basic $ENCODED"
```

Réponse
```json
{
  "version": "v2.16.0 \"Connor\"",
  "datecreated": "2026-02-12T12:21:46+01:00",
  "time": 0.31410717964172363,
  "total": 1,
  "organizations": [
    {
      "uid": "12345",
      "code": "",
      "shortname": "",
      "longname": "Université de Rennes - Campus Beaulieu ",
      "description": "",
      "address": {
        "address1": "263 avenue Général Leclerc - CS 74205",
        "address2": "",
        "address3": "",
        "zipcode": "35042",
        "city": "Rennes",
        "country": "France"
      },
      "datecreated": "2025-05-06T09:18:20+02:00",
      "dateupdated": "2025-05-06T09:18:20+02:00",
      "datecached": "2025-05-06T09:18:20+02:00",
      "phone": "",
      "url": "",
      "email": "",
      "siret": "",
      "type": "Établissement publique"
    }
  ]
}
```


### API organization

Requête
```bash
CLIENT_ID=MON_IDENTIFIANT CLIENT_SECRET=MON_MOT_DE_PASSE ENCODED="$( echo -n $CLIENT_ID:$CLIENT_SECRET | base64 -w 0 )"; curl --request GET --url 'https://oscar.votreuniv.fr/api/organizations/12345' --header "Authorization: Basic $ENCODED"
```

Réponse
```json
{
  "version": "v2.16.0 \"Connor\"",
  "datecreated": "2026-02-12T12:23:28+01:00",
  "time": 0.012481212615966797,
  "uid": "12345",
  "organization": {
    "uid": "12345",
    "code": "",
    "shortname": "",
    "longname": "Université de Rennes - Campus Beaulieu ",
    "description": "",
    "address": {
      "address1": "263 avenue Général Leclerc - CS 74205",
      "address2": "",
      "address3": "",
      "zipcode": "35042",
      "city": "Rennes",
      "country": "France"
    },
    "datecreated": "2025-05-06T09:18:20+02:00",
    "dateupdated": "2025-05-06T09:18:20+02:00",
    "datecached": "2025-05-06T09:18:20+02:00",
    "phone": "",
    "url": "",
    "email": "",
    "siret": "",
    "type": "Établissement publique"
  }
}
```





## Configurer les formatteurs
+20 −0
Original line number Diff line number Diff line
@@ -52,3 +52,23 @@ $ crontab -e
# Déclenchement de la procédure toutes les heures
00 */1 * * * php /path/to/oscar/public/index.php oscar notifications:mails:persons
```

## A FAIRE (Accueil)

La page d'accueil propose aux utilisateurs une liste de *tâches* à faire : Jalons à compléter et versements en retard.

Si besoin, cet encart peut être désactivé via la configuration : 

avec la clef `OSCAR_HOMEPAGE_TODO` dans le **.env** ou dans le fichier **local.php** : 
```php
<?php
// config/autoload.local.php
return array(
    // ...
    'oscar' => [
        // ...
        'homepage_todo_enabled' => false,
    ],
);
```
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ S'adresse aux gestionnaires d'application souhaitant installer et configurer une

## Autre configuration

- [Oscar API](config-api.md) Configurer Oscar pour permettre son accès via une API Rest
- [Oscar API](./configuration/config-api.md) Configurer Oscar pour permettre son accès via une API Rest
- [Modifier la méthode de génération des PDF](configuration/config-docpdf.md) Permet un gain de performance pour la génération des *certains* documents
- [Personnaliser l'export des activités](activities-export.md)
- [Activier le mode ADAJ](adaj.md)
+3 −0
Original line number Diff line number Diff line
@@ -137,6 +137,9 @@ OSCAR_TIMESHEET_IMPORT_ENABLE=true
NOTIFICATIONS_OVERRIDE=false
NOTIFICATIONS_FIXED=Lun8

# Affichage des "A FAIRE" en page d'accueil
OSCAR_HOMEPAGE_TODO=true

# ----------------------------------------------------------------------------
# Fiche ACTIVITE/PROJET
# ENROLE_WITH_DATE > Affiche les dates de début/fin
Loading