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

Merge branch '2025-05-patch-organization-main' into kusanagi

 - Ajout d'exemple de configuration pour la récupération de membre de structure spécifique
 - Ajout d'exemple de configuration pour la récupération de personnes fixes
A Documenter
parents 331ff411 ba57f1c6
Loading
Loading
Loading
Loading
Loading
+6 −0
Changes for CHANGELOG.md: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,12 @@
## 2025

### Mai
 - [kusanagi] Nouvel interface de gestion des rôles/privilèges
 - [kusanagi] Options : Organisation centrale (Module signature)
 - [kusanagi] Signature : Ajout d'exemples pour obtenir des personnes plus spécifiques : 
   - Personnes fixes
   - Personnes d'une structure donnée (avec un rôle spécifique)
   - Personnes avec un rôle dans une organisation centrale
 - [starling] Mise à jour de la librairie **unicaen/signature** (v 1.0.6) avec prise en charge de l'API TOKEN
 - [starling] Connecteur DB : Ajout d'une option `roles_correspondance` afin de configurer la correspondance entre les rôles du connecteur et ceux présents dans Oscar
 - [starling] Docker : Possibilité de personnaliser le script d'initialisation Postgresql (permet de faire des répliques)
+18 −7
Changes for README.md: 18 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -9,24 +9,35 @@
## Versions

### Prochaines version (TODO non-planifié)
 - MAJ UI (Bootstrap)
 - MAJ UI (Bootstrap ou kwazar)
 - intégration i18n / documentation développement
 - SIFAC+ (Selon la mise à disposition des APIs AMUE)
 - Signature numérique (parapheur)

### Prochaine version 2.15 "Kusanagi"

Testing juillet 2025 - Stable septembre 2025

| Nom de la version | Branche GIT         | N°de version | Status    |
|-------------------|---------------------|--------------|-----------|
| *Kusanagi*        | `kusanagi` | *2.15.x*     | *Testing* |

> [Note de mise à jour pour la version STARLING ](doc/versions/version-2.14-starling.md)



Prévu (Fin Juin 2025) : 
 - PCRU
 - Docker (prod)
 - SIFAC+ (Selon la mise à disposition des APIs AMUE)
 - Signature numérique (parapheur)
 - Nouvel interface de gestion des rôles

### Version 2.14 "Starling" (Branche master)

Testing février 2025 - Stable mai 2025

| Nom de la version | Branche GIT         | N°de version | Status  |
|-------------------|---------------------|--------------|-----------|
| *Starling*        | `master` `starling` | *2.14.x*     | *Testing* |
|-------------------|---------------------|--------------|---------|
| *Starling*        | `master` `starling` | *2.14.x*     | *Stable* |

> [Note de mise à jour pour la version STARLING ](doc/versions/version-2.14-starling.md)
 
@@ -34,8 +45,8 @@ Testing février 2025 - Stable mai 2025
### Version "Ripley" (Branche ripley)

| Nom de la version | Branche GIT       | N°de version | Status      |
|-------------------|-------------------|--------------|-----------|
| *Ripley*          | `ripley` | *2.13.x*     | *Testing* |
|-------------------|-------------------|--------------|-------------|
| *Ripley*          | `ripley` | *2.13.x*     | *Old stable* |

> [Note de mise à jour pour la version RIPLEY ](doc/versions/version-2.13.2-ripley-php8.md)

+78 −0
Changes for config/autoload/unicaen-signature.local.php.dist: 78 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -90,6 +90,84 @@ return [
         * Note : firstname/lastname sont optionnels
         */
        'get_recipients_methods' => [

            /// Liste des personnes avec un rôle dans la/les organisation(s) référencée(s) comme "centrale" dans
            /// les options
            [
                'key'    => 'centrale_organisation',
                'label'  => 'Membres des organisations "centrale"',
                'description' => "Personnes de la/les organisation(s) indiquée(s) comme centrale dans les options",
                'options' => [],
                'getRecipients'     => function ($sc, $options) {
                    try {
                        /** @var \Oscar\Service\OrganizationService $orgServ */
                        $orgServ = $sc->get(\Oscar\Service\OrganizationService::class);
                        return $orgServ->getMembers($orgServ->getOrganizationsCentral());
                    } catch (Exception $e) {
                        return [];
                    }
                }
            ],

            /// Liste des personnes avec un rôle dans la/les organisation(s) dans la structure indiquée (ID)
            [
                'key'    => 'fixed_organisation_demo_all',
                'label'  => 'Direction de la DRI (id 15059)',
                'description' => "Membres spécifiques d'une structure",
                'options' => [],
                'getRecipients'     => function ($sc, $options) {
                    try {
                        return $sc->get(\Oscar\Service\OrganizationService::class)
                            ->getMembers([15059], ["Directeur"]);
                    } catch (Exception $e) {
                        $sc->get("Logger")
                            ->error($e->getMessage());
                        return [];
                    }
                }
            ],

            /// Liste des personnes avec le rôle indiqué dans la/les organisation(s) dans la structure indiquée (ID)
            [
                'key'    => 'fixed_organisation_demo_roled',
                'label'  => 'Direction de la DRI (id 15059)',
                'description' => "Membres spécifiques d'une structure",
                'options' => [],
                'getRecipients'     => function ($sc, $options) {
                    try {
                        return $sc->get(\Oscar\Service\OrganizationService::class)
                            ->getMembers([15059], ["Directeur"]);
                    } catch (Exception $e) {
                        $sc->get("Logger")
                            ->error($e->getMessage());
                        return [];
                    }
                }
            ],

            /// Liste des personnes Fixe
            [
                'key'    => 'fixed_person_demo',
                'label'  => 'VP Recherche',
                'description' => "",
                'options' => [],
                'getRecipients'     => function ($sc, $options) {
                        return [
                            [
                                "firstname" => "Christophe",
                                "lastname" => "Rochais",
                                "email" => "christophe.rochais@unicaen.fr"
                            ],
                            [
                                "firstname" => "Jean-Marc",
                                "lastname" => "Fournier",
                                "email" => "jean-marc.fournier@unicaen.fr"
                            ]
                        ];
                }
            ],

            /// Liste des personnes Fixe
            [
                ///// key : Clef unique pour identifier le méthode
                'key'               => 'persons_by_role',
+62 −0
Changes for doc/versions/version-2.15-kusanagi.md: 62 added lines, 0 removed lines.
Original line number Diff line number Diff line
# OSCAR 2.14.x "Starling"

## Contenu de cette mise à jour

### Fonctionnel
 - **PCRU** : 
   - Système d'envoi automatique vers PCRU (CNRS)
 
 - **Administration** : 
   - Gestion des *droits et privilèges*
     - Nouvel interface (plus clair)
     - Possibilité de copier les privilèges d'un rôle vers un autre

### Technique
 - **Version docker** Nouvelles données initiale


## Mise en place technique

### Passage en KUSANAGI

```bash
# Actualisation du dépôt
git fetch

# Bascule sur la branche "starling"
git checkout starling
git fetch
```

Un script *Bash* est disponible dans les fichiers Oscar pour déclencher la procédure de mise à jour

```bash
. oscar-update.sh
```

Contenu du script :

```bash
#!/bin/bash

COMPOSER=composer
PHP=php

echo "############################################### COMPOSER UPDATE"
## mise à jour des dépendances PHP
${COMPOSER} install

echo "############################################### MODEL UPDATE"
## Mise à jour du modèle (si besoin)
php vendor/bin/doctrine-module orm:schema-tool:update --force --complete


echo "############################################### CHECK PRIVILEGES"
## Mise à jour des privilèges
php bin/oscar.php check:privileges

echo "############################################### UPDATE INFOS"
## écriture du JSON de version
php bin/oscar.php infos
```
+1 −0
Changes for module/Oscar/config/module.config.php: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ return array(
                        'logs',
                        'messages',
                        'motscles',
                        'organizationCentrale',
                        'organizationRole',
                        'organizationRoleApi',
                        'organizationType',
Loading