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

Merge branch 'develop' into migration_postgres

parents ef410c07 d0ad4a5b
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 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ $modules = [
    '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
+1 −0
Original line number Diff line number Diff line
@@ -303,6 +303,7 @@ return array(
            '061_uploader' => "/js/jquery.iframe-transport.js",
            '062_uploader' => "/js/jquery.fileupload.js",
            '063_uploader' => "/js/unicaen.uploader.widget.js",
            '070_clipboard' => "/js/clipboard.min.js",
        ],
        'inline_scripts' => [
            '070_bootstrap-select' => '/vendor/bootstrap-select-1.13.18/js/bootstrap-select.min.js',
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ return [
            /**
             * Description facultative de ce mode d'authentification qui apparaîtra sur la page de connexion.
             */
            'description' => "Description ????",
//            'description' => "Description ????",
        ],
    ],

Loading