Commit d0ad4a5b authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'release_2.2.3' into develop

parents 215cb4fc df126c93
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
Journal des modifications
=========================

2.2.3
-----
- Scission du rôle "École doctorale" en 2 : "Responsable École doctorale" et "Gestionnaire École doctorale".
- Scission du rôle "Unité de recherche" en 2 : "Responsable Unité de recherche" et "Gestionnaire Unité de recherche".
- Envoi automatique par mail des jetons d'authentification créés + possibilité de les renvoyer.
- Utilisation des dates et lieux des dossiers de soutenances plutôt que celles saisies dans les SIs pour la génération des documents du module soutenance.
- Précision de la date de rendu des rapports dès le premier mail des rapporteurs
- Recherche de rapports d'activité : nouveau filtre "Annuel ou fin de thèse".  
- Fiche d'identité de la thèse : la date prévisionnelle de soutenance n'est plus affichée car elle peut être erronée.
- Rapports d'activité, CSI, de fin de thèse : la date de bascule pour déterminer l'année universitaire est le 01/11. 
- [FIX] Dédoublonnage des origines de financement dans le filtres de la page des rapports.

2.2.2
-----
- Authentification simplifiée des rapporteurs à l'aide d'un token.
+1 −7
Original line number Diff line number Diff line
@@ -20,15 +20,10 @@
        "ext-intl":                      "*",
        "ext-json":                      "*",
        "ext-readline":                  "*",
        "ext-saxonc":                    "*",
        "ext-soap":                      "*",
        "ext-xmlwriter":                 "*",
        "ext-xsl":                       "*",
        "ext-zip":                       "*",
        "beberlei/assert":               "^2.9",
        "guzzlehttp/guzzle":             "^6.3",
        "ramsey/uuid":                   "^3.3",
        "twig/twig":                     "^3.0",
        "unicaen/app":                   "^3.1",
        "unicaen/auth":                  "^3.2",
        "unicaen/auth-token":            "dev-master",
@@ -39,8 +34,7 @@
        "unicaen/ldap":                  "^3.0",
        "unicaen/oracle":                "^3.0",
        "webmozart/assert":              "^1.3",
        "zendframework/zend-feed":       "^2.12",
        "zendframework/zend-soap":       "^2.8"
        "zendframework/zend-feed":       "^2.12"
    },
    "autoload": {
        "psr-0": {
+27 −27
Original line number Diff line number Diff line
@@ -3219,16 +3219,16 @@
        },
        {
            "name": "symfony/string",
            "version": "v5.3.2",
            "version": "v5.3.3",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/string.git",
                "reference": "0732e97e41c0a590f77e231afc16a327375d50b0"
                "reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/string/zipball/0732e97e41c0a590f77e231afc16a327375d50b0",
                "reference": "0732e97e41c0a590f77e231afc16a327375d50b0",
                "url": "https://api.github.com/repos/symfony/string/zipball/bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1",
                "reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1",
                "shasum": ""
            },
            "require": {
@@ -3295,20 +3295,20 @@
                    "type": "tidelift"
                }
            ],
            "time": "2021-06-06T09:51:56+00:00"
            "time": "2021-06-27T11:44:38+00:00"
        },
        {
            "name": "symfony/var-dumper",
            "version": "v5.3.2",
            "version": "v5.3.3",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/var-dumper.git",
                "reference": "905a22c68b292ffb6f20d7636c36b220d1fba5ae"
                "reference": "46aa709affb9ad3355bd7a810f9662d71025c384"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/905a22c68b292ffb6f20d7636c36b220d1fba5ae",
                "reference": "905a22c68b292ffb6f20d7636c36b220d1fba5ae",
                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/46aa709affb9ad3355bd7a810f9662d71025c384",
                "reference": "46aa709affb9ad3355bd7a810f9662d71025c384",
                "shasum": ""
            },
            "require": {
@@ -3380,7 +3380,7 @@
                    "type": "tidelift"
                }
            ],
            "time": "2021-06-06T09:51:56+00:00"
            "time": "2021-06-24T08:13:00+00:00"
        },
        {
            "name": "true/punycode",
@@ -3430,11 +3430,11 @@
        },
        {
            "name": "unicaen/app",
            "version": "3.1.18",
            "version": "3.1.19",
            "source": {
                "type": "git",
                "url": "https://git.unicaen.fr/lib/unicaen/app.git",
                "reference": "4676702d03c1b748913a5207436c024cd81a244e"
                "reference": "cfd68a5c18308b0c54b8a449a71f9b11fbf1bccf"
            },
            "require": {
                "beberlei/assert": "^2.9",
@@ -3490,15 +3490,15 @@
                ]
            },
            "description": "Module de base des applications unicaen",
            "time": "2021-05-04T07:57:25+00:00"
            "time": "2021-06-25T09:52:59+00:00"
        },
        {
            "name": "unicaen/auth",
            "version": "3.2.3",
            "version": "3.2.4",
            "source": {
                "type": "git",
                "url": "https://git.unicaen.fr/lib/unicaen/auth.git",
                "reference": "4fa0c9dc8a76829ea7f95efbcf55aa5495bf0948"
                "reference": "66a0e5409388a2379bd16065199056eedd184281"
            },
            "require": {
                "jasig/phpcas": "^1.3",
@@ -3520,7 +3520,7 @@
                ]
            },
            "description": "Module d'authentification pour les applications Unicaen",
            "time": "2021-06-24T09:16:46+00:00"
            "time": "2021-06-28T09:05:28+00:00"
        },
        {
            "name": "unicaen/auth-token",
@@ -3528,10 +3528,11 @@
            "source": {
                "type": "git",
                "url": "https://git.unicaen.fr/lib/unicaen/auth-token.git",
                "reference": "81d5e165bef0a62762255a35be757c4bfe7b6176"
                "reference": "c1b0e17f0de4f5988bc397097c3b574d06c645a5"
            },
            "require": {
                "ramsey/uuid": "^3.7",
                "unicaen/app": "^3.0",
                "unicaen/auth": ">= 3.2.1"
            },
            "require-dev": {
@@ -3547,7 +3548,7 @@
                ]
            },
            "description": "Authentification à l'aide d'un token",
            "time": "2021-06-18T09:34:01+00:00"
            "time": "2021-06-30T09:34:04+00:00"
        },
        {
            "name": "unicaen/bjy-authorize",
@@ -3638,11 +3639,11 @@
        },
        {
            "name": "unicaen/db-import",
            "version": "3.1.3",
            "version": "3.1.4",
            "source": {
                "type": "git",
                "url": "https://git.unicaen.fr/lib/unicaen/db-import.git",
                "reference": "8db89f7020515d0011ffd008f4f02a855bf06933"
                "reference": "7418575fc1b2a04012f2db3f8c410c117514822d"
            },
            "require": {
                "beberlei/assert": "^2.7",
@@ -3672,7 +3673,7 @@
                }
            },
            "description": "Module d'import entre bases de données",
            "time": "2021-06-02T08:43:15+00:00"
            "time": "2021-07-02T13:11:06+00:00"
        },
        {
            "name": "unicaen/faq",
@@ -7822,7 +7823,6 @@
            ],
            "description": "Provides a list of PHP built-in functions that operate on resources",
            "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
            "abandoned": true,
            "time": "2015-07-28T20:34:47+00:00"
        },
        {
@@ -7870,16 +7870,16 @@
        },
        {
            "name": "symfony/yaml",
            "version": "v4.4.25",
            "version": "v4.4.26",
            "source": {
                "type": "git",
                "url": "https://github.com/symfony/yaml.git",
                "reference": "81cdac5536925c1c4b7b50aabc9ff6330b9eb5fc"
                "reference": "e096ef4b4c4c9a2f72c2ac660f54352cd31c60f8"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/symfony/yaml/zipball/81cdac5536925c1c4b7b50aabc9ff6330b9eb5fc",
                "reference": "81cdac5536925c1c4b7b50aabc9ff6330b9eb5fc",
                "url": "https://api.github.com/repos/symfony/yaml/zipball/e096ef4b4c4c9a2f72c2ac660f54352cd31c60f8",
                "reference": "e096ef4b4c4c9a2f72c2ac660f54352cd31c60f8",
                "shasum": ""
            },
            "require": {
@@ -7934,7 +7934,7 @@
                    "type": "tidelift"
                }
            ],
            "time": "2021-05-26T17:39:37+00:00"
            "time": "2021-06-23T19:06:53+00:00"
        },
        {
            "name": "unicaen/test",
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ $modules = ['Zend\Cache',
    'Soutenance',
    'Notification',
    'Information',
    'StepStar',
//    'StepStar',
    'Application',
];

+135 −0
Original line number Diff line number Diff line
# Version 2.2.3

## 1. Sur le serveur d'application

- Placez-vous dans le répertoire de l'application puis lancez la commande suivante
  pour installer la nouvelle version :

```bash
git fetch --tags && git checkout --force 2.2.3 && bash ./install.sh
```

- Selon le moteur PHP que vous avez installé, rechargez le service, exemple :
    - php7.3-fpm         : `service php7.3-fpm reload`
    - apache2-mod-php7.3 : `service apache2 reload`

## 2. Dans la base de données

```sql
--
-- Scission du rôle "École doctorale" en 2 : "Responsable École doctorale" et "Gestionnaire École doctorale".
-- Scission du rôle "Unité de recherche" en 2 : "Responsable Unité de recherche" et "Gestionnaire Unité de recherche".
--

create table ROLE_sav             as select * from ROLE ;
create table PROFIL_sav           as select * from PROFIL ;
create table PROFIL_TO_ROLE_sav   as select * from PROFIL_TO_ROLE ;
create table PROFIL_PRIVILEGE_sav as select * from PROFIL_PRIVILEGE ;
create table ROLE_PRIVILEGE_sav   as select * from ROLE_PRIVILEGE ;

insert into role (ID, CODE, LIBELLE, SOURCE_CODE, SOURCE_ID,
                  ROLE_ID, IS_DEFAULT, LDAP_FILTER, ATTRIB_AUTO, THESE_DEP,
                  HISTO_CREATEUR_ID, HISTO_MODIFICATEUR_ID, STRUCTURE_ID, TYPE_STRUCTURE_DEPENDANT_ID, ORDRE_AFFICHAGE)
select ROLE_ID_SEQ.nextval,
       'GEST_' || r.CODE,
       'Gestionnaire ' || r.LIBELLE,
       replace(r.SOURCE_CODE, r.CODE, 'GEST_'||r.CODE),
       r.SOURCE_ID,
       'Gestionnaire ' || r.ROLE_ID,
       r.IS_DEFAULT,
       r.LDAP_FILTER,
       r.ATTRIB_AUTO,
       r.THESE_DEP,
       r.HISTO_CREATEUR_ID,
       r.HISTO_MODIFICATEUR_ID,
       r.STRUCTURE_ID,
       r.TYPE_STRUCTURE_DEPENDANT_ID,
       r.ORDRE_AFFICHAGE
from role r
where r.CODE in ('ED', 'UR');

update role set
    CODE = 'RESP_'||CODE,
    LIBELLE = 'Responsable '||LIBELLE,
    SOURCE_CODE = replace(SOURCE_CODE, CODE, 'RESP_'||CODE),
    ROLE_ID = 'Responsable '||ROLE_ID
where CODE in ('ED', 'UR');

insert into PROFIL (ID, LIBELLE, ROLE_ID, STRUCTURE_TYPE, DESCRIPTION, ORDRE)
select PROFIL_ID_SEQ.nextval, 'Gestionnaire '||LIBELLE, 'GEST_'||ROLE_ID, STRUCTURE_TYPE, DESCRIPTION, ORDRE
from PROFIL
where ROLE_ID in ('ED', 'UR');

update PROFIL set
    LIBELLE = 'Responsable '||LIBELLE,
    ROLE_ID = 'RESP_'||ROLE_ID
where ROLE_ID in ('ED', 'UR');

insert into PROFIL_TO_ROLE (PROFIL_ID, ROLE_ID)
select p.id, r.id
from profil p, role r
where p.ROLE_ID = 'RESP_ED'
  and r.CODE = 'RESP_ED'
  and not exists(
    select * from PROFIL_TO_ROLE where PROFIL_ID = p.id and ROLE_ID = r.id
  );
--
insert into PROFIL_TO_ROLE (PROFIL_ID, ROLE_ID)
select p.id, r.id
from profil p, role r
where p.ROLE_ID = 'RESP_UR'
  and r.CODE = 'RESP_UR'
  and not exists(
    select * from PROFIL_TO_ROLE where PROFIL_ID = p.id and ROLE_ID = r.id
  );

insert into PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
select p2p.PRIVILEGE_ID, p.id
from PROFIL_PRIVILEGE p2p, PROFIL p
where p2p.PROFIL_ID = (select id from profil where ROLE_ID = 'RESP_ED')
  and p.ROLE_ID = 'GEST_ED';
--
insert into PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
select p2p.PRIVILEGE_ID, p.id
from PROFIL_PRIVILEGE p2p, PROFIL p
where p2p.PROFIL_ID = (select id from profil where ROLE_ID = 'RESP_UR')
  and p.ROLE_ID = 'GEST_UR';

insert into ROLE_PRIVILEGE (ROLE_ID, PRIVILEGE_ID)
select p2r.ROLE_ID, pp.PRIVILEGE_ID
from PROFIL_TO_ROLE p2r
       join profil pr on pr.id = p2r.PROFIL_ID and pr.ROLE_ID in ('RESP_ED', 'GEST_ED', 'RESP_UR', 'GEST_UR')
       join PROFIL_PRIVILEGE pp on pp.PROFIL_ID = pr.id
where not exists(
    select * from role_privilege where role_id = p2r.role_id and privilege_id = pp.privilege_id
);
```

## 3. Dans l'application SyGAL

### Ancien rôle utilisateur `École doctorale`

Ce rôle est désormais scindé en 2 : `Responsable École doctorale` et `Gestionnaire École doctorale`.
  
Le nouveau rôle `Responsable École doctorale` est en fait un renommage de l'ancien rôle `École doctorale`.
Par conséquent : 
  - ce nouveau rôle possède les mêmes privilèges que l'ancien ;
  - les utilisateurs qui avaient l'ancien rôle `École doctorale` ont désormais le rôle `Responsable École doctorale`.
  
Vous devez donc :
  - retirer ce nouveau rôle à certains utilisateurs qui ne sont pas responsables d'ED et leur attribuer à la place 
    le nouveau rôle `Gestionnaire École doctorale` en vous rendant sur la page "Administration > Utilisateurs".

Le nouveau rôle `Gestionnaire École doctorale` a été initialisé avec les mêmes privilèges que le nouveau rôle 
`Responsable École doctorale`.
Par conséquent :
- les utilisateurs qui ont le rôle `Gestionnaire École doctorale` peuvent réaliser les mêmes actions dans
  SyGAL que les utilisateurs ayant le rôle `Responsable École doctorale`.

Vous devez donc :
  - retirer éventuellement des privilèges au rôle `Gestionnaire École doctorale` en vous rendant sur la page
    "Administration > Droits d'accès > Profils" de SyGAL.

### Ancien rôle utilisateur `Unité de recherche`

Idem.
 No newline at end of file
Loading