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

Intégration de la 3.0.13 avortée

parent 826836f1
Loading
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -11,9 +11,6 @@ Journal des modifications
- [FIX] Plantage de la page "Contact Assistance" en cas de connexion avec un compte local.
- [FIX] Activation de la mise en cache de la config lorsque le mode development est désactivé.
- [FIX] Lancement de la synchro des thèses pour prendre en compte la création/modification/suppression de substitution de structures.

3.0.13
------
- Ajout des unités de recherche fermées dans le filtre des thèses
- [FIX] correction du bug lié au typage de retour trop strict de l'entité Structure
- Mise en place de la déclaration de non plagiat dans la proposition de soutenance

doc/release-notes/v3.0.13.md

deleted100644 → 0
+0 −84
Original line number Diff line number Diff line
# Version 3.0.12

## 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 3.0.12 && 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

- Ajout des nouvelles validations liées aux déclarations de non plagiat
```SQL
insert into type_validation (code, libelle) VALUES ('DOCTORANT_DECLARATION_HONNEUR_NON_PLAGIAT', 'Déclaration sur l''honneur de non plagiat du doctorant');
insert into type_validation (code, libelle) VALUES ('DOCTORANT_REFUS_HONNEUR_NON_PLAGIAT', 'Refus de la déclaration sur l''honneur de non plagiat du doctorant');
```

- Ajout des privilèges associés aux déclarations de non plagiat
```SQL
insert into PRIVILEGE(ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
with d(ordre, code, lib) as (
    select 1001, 'declaration-honneur-valider', 'Valider/Refuser la déclaration sur l''honneur de non plagiat' union
    select 1002, 'declaration-honneur-revoquer', 'Revoquer la déclaration sur l''honneur de non plagiat'
)
select privilege_id_seq.nextval, cp.id, d.code, d.lib, d.ordre
from d
join CATEGORIE_PRIVILEGE cp on cp.CODE = 'soutenance'
;
```

- Attribution minimale des nouveaux privileges
```SQL
-- declaration-honneur-valider doit être accorder aux doctorants
INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
with data(categ, priv) as (
  select 'soutenance', 'declaration-honneur-valider'
)
select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID
from data
       join PROFIL on profil.ROLE_ID in ('DOCTORANT')
       join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ
       join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv
where not exists (
      select * from PROFIL_PRIVILEGE where PRIVILEGE_ID = p.id and PROFIL_ID = profil.id
) ;

-- declaration-honneur-revoquer doit être accorder aux BDD et aux administrateurs
INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
with data(categ, priv) as (
  select 'soutenance', 'declaration-honneur-revoquer'
)
select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID
from data
       join PROFIL on profil.ROLE_ID in ('ADMIN_TECH', 'BDD')
       join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ
       join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv
where not exists (
      select * from PROFIL_PRIVILEGE where PRIVILEGE_ID = p.id and PROFIL_ID = profil.id
) ;
```

- Réapplication des profils
```SQL
insert into PROFIL_TO_ROLE (PROFIL_ID, ROLE_ID)
    with data(PROFIL_CODE, ROLE_ROLE_ID) as (
        select 'BDD', 'Maison du doctorat UCN' union
        select 'BDD', 'Maison du doctorat URN' union
        select 'BDD', 'Maison du doctorat ULHN'  union
        select 'BDD', 'Maison du doctorat INSA' 
    )
    select pr.id, r.id
    from data
    join PROFIL pr on pr.ROLE_ID = data.PROFIL_CODE
    join role r on r.ROLE_ID = data.ROLE_ROLE_ID
    where not exists (
        select * from PROFIL_TO_ROLE where PROFIL_ID = pr.id and ROLE_ID = r.id
    ) ;
```
 No newline at end of file
+59 −0
Original line number Diff line number Diff line
@@ -66,4 +66,63 @@ NB : si chez vous il existe déjà une clé `'import'`, écrasez-la par le nouve
Dans la base de données
-----------------------

- Ajout des nouvelles validations liées aux déclarations de non plagiat
```SQL
insert into type_validation (id, code, libelle) VALUES (nextval('type_validation_id_seq'), 'DOCTORANT_DECLARATION_HONNEUR_NON_PLAGIAT', 'Déclaration sur l''honneur de non plagiat du doctorant');
insert into type_validation (id, code, libelle) VALUES (nextval('type_validation_id_seq'), 'DOCTORANT_REFUS_HONNEUR_NON_PLAGIAT', 'Refus de la déclaration sur l''honneur de non plagiat du doctorant');
```

- Ajout des privilèges associés aux déclarations de non plagiat
```SQL
insert into PRIVILEGE(ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
with d(ordre, code, lib) as (
  select 1001, 'declaration-honneur-valider', 'Valider/Refuser la déclaration sur l''honneur de non plagiat' union
  select 1002, 'declaration-honneur-revoquer', 'Revoquer la déclaration sur l''honneur de non plagiat'
)
select nextval('privilege_id_seq'), cp.id, d.code, d.lib, d.ordre
from d
       join CATEGORIE_PRIVILEGE cp on cp.CODE = 'soutenance'
;

-- declaration-honneur-valider doit être accorder aux doctorants
INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
with data(categ, priv) as (
  select 'soutenance'::text, 'declaration-honneur-valider'::text
)
select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID
from data
       join PROFIL on profil.ROLE_ID in ('DOCTORANT')
       join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ
       join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv
where not exists (
        select * from PROFIL_PRIVILEGE where PRIVILEGE_ID = p.id and PROFIL_ID = profil.id
  ) ;

-- declaration-honneur-revoquer doit être accorder aux BDD et aux administrateurs
INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
with data(categ, priv) as (
  select 'soutenance'::text, 'declaration-honneur-revoquer'::text
)
select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID
from data
       join PROFIL on profil.ROLE_ID in ('ADMIN_TECH', 'BDD')
       join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ
       join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv
where not exists (
        select * from PROFIL_PRIVILEGE where PRIVILEGE_ID = p.id and PROFIL_ID = profil.id
  ) ;

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
       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
  )
;
```

- Changements majeurs concernant l'import

Cf. [ici](4.0.0/import.sql)