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

Merge branch 'refonte-privilege-fichier' into release-1.2.1

parents a821b217 59e2bb29
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -4,10 +4,21 @@ Journal des modifications
1.2.1 ()
------------------

### Ajout

- Nouvelle page consacrée au dépôt de fichiers divers liés à une thèse (précédemment dans la page "Thèse").
- Possibilité de déposer des fichiers dits "communs" utiles aux gestionnaires, ex: modèle d'avenant à la convention 
  de mise en ligne.

### Améliorations

- Améliorations de la page "Privilèges", notamment le filtrage par rôle. 
- Déplacement des privilèges de la catégorie `fichier-divers` vers la catégorie `these`
  car ils concernent des fichiers liés à une thèse (ex: PV de soutenance).
  La catégorie `fichier-divers` désigne désormais les privilèges concernant des fichiers sans lien aux
  thèses (ex: fichiers déposés pour les pages d'informations).
- Refonte technique de la gestion des fichiers liés aux pages d'informations, prélable au travail sur les droits de 
  dépôt de fichiers divers.
  dépôt de fichiers "divers" et "communs".


1.2.0 (10/07/2019)
+60 −0
Original line number Diff line number Diff line
--
-- Déplacement des privilèges de la catégorie 'fichier-divers' vers la catégorie 'these'
-- car ils concernent des fichiers liés à une thèse (ex: PV de soutenance).
--
-- La catégorie 'fichier-divers' désigne désormais les privilèges concernant des fichiers non liés
-- aux thèses (ex: fichiers déposés pour les pages d'informations).
--
update PRIVILEGE p
    set CATEGORIE_ID = (select id from CATEGORIE_PRIVILEGE where CODE = 'these'),
        CODE = 'fichier-divers-'||CODE
    where CATEGORIE_ID = (select id from CATEGORIE_PRIVILEGE where CODE = 'fichier-divers')
/

--
-- 2 nouveaux privilèges pour les opérations sur des fichiers divers, *non liées aux thèses* :
--   - fichier-divers/televerser
--   - fichier-divers/telecharger
--
insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
    select PRIVILEGE_ID_SEQ.nextval, cp.id, 'televerser', 'Téléverser ou supprimer un fichier divers, non lié à une thèse', 100
    from CATEGORIE_PRIVILEGE cp
    where cp.CODE = 'fichier-divers'
/
insert into PRIVILEGE (ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
    select PRIVILEGE_ID_SEQ.nextval, cp.id, 'telecharger', 'Télécharger un fichier divers, non lié à une thèse', 200
    from CATEGORIE_PRIVILEGE cp
    where cp.CODE = 'fichier-divers'
/

--
-- Supression du privilège faq/modifier-fichier, utilisé pour les fichiers des pages d'informations.
-- Il est remplacé par le privilège fichier-divers/televerser.
--
delete from PRIVILEGE
    where CATEGORIE_ID = (select id from CATEGORIE_PRIVILEGE where CODE = 'faq')
      and CODE = 'modifier-fichier'
/
-- Ajout des privilèges fichier-divers/* au profil 'ADMIN_TECH'
insert into PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
    with data(categ, priv) as (
        select 'fichier-divers',  'televerser'  from dual union
        select 'fichier-divers',  'telecharger' from dual
    )
    select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID
    from data
    join PROFIL on profil.ROLE_ID in (/*'ADMIN_TECH',*/ 'BU', 'BDD')
    join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ
    join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv
/
-- Attribution (si pas déjà fait) des privilèges fichier-divers/* au rôle 'ADMIN_TECH' (grâce au profil 'ADMIN_TECH').
insert into ROLE_PRIVILEGE (ROLE_ID, PRIVILEGE_ID)
    SELECT r.id as ROLE_ID, p.ID as PRIVILEGE_ID
    from PROFIL_PRIVILEGE pp
             join profil on PROFIL.ID = pp.PROFIL_ID and profil.ROLE_ID in (/*'ADMIN_TECH',*/ 'BU', 'BDD')
             join PRIVILEGE p on p.id = pp.PRIVILEGE_ID
             join CATEGORIE_PRIVILEGE cp on cp.id = p.CATEGORIE_ID and cp.CODE = 'fichier-divers'
             join role r on r.CODE = PROFIL.ROLE_ID
    where not exists (
        select * from ROLE_PRIVILEGE rp where rp.ROLE_ID = r.id and rp.PRIVILEGE_ID = p.id
    );
+51 −0
Original line number Diff line number Diff line
--
-- Fichiers communs.
--
-- Nouvelle catégorie.
insert into CATEGORIE_PRIVILEGE(ID, CODE, LIBELLE, ORDRE)
values (47, 'fichier-commun', 'Dépôt de fichier commun (non lié à une thèse)', 50)
/
insert into PRIVILEGE(ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
select privilege_id_seq.nextval, cp.id, 'televerser', 'Téléversement de fichier commun non lié à une thèse particulière (ex: PV de soutenance)', 10
from CATEGORIE_PRIVILEGE cp where cp.CODE = 'fichier-commun'
/
insert into PRIVILEGE(ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
select privilege_id_seq.nextval, cp.id, 'telecharger', 'Téléchargement de fichier commun non lié à une thèse particulière (ex: PV de soutenance)', 20
from CATEGORIE_PRIVILEGE cp where cp.CODE = 'fichier-commun'
/
-- Ajout des privilèges fichier-commun/* au profil 'ADMIN_TECH'
insert into PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
with data(categ, priv) as (
    select 'fichier-commun',  'televerser'  from dual union
    select 'fichier-commun',  'telecharger' from dual
)
select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID
from data
         join PROFIL on profil.ROLE_ID in ('ADMIN_TECH', 'BU', 'BDD')
         join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ
         join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv
/
-- Attribution (si pas déjà fait) des privilèges fichier-divers/* au rôle 'ADMIN_TECH' (grâce au profil 'ADMIN_TECH').
insert into ROLE_PRIVILEGE (ROLE_ID, PRIVILEGE_ID)
SELECT r.id as ROLE_ID, p.ID as PRIVILEGE_ID
from PROFIL_PRIVILEGE pp
         join profil on PROFIL.ID = pp.PROFIL_ID and profil.ROLE_ID in ('ADMIN_TECH', 'BU', 'BDD')
         join PRIVILEGE p on p.id = pp.PRIVILEGE_ID
         join CATEGORIE_PRIVILEGE cp on cp.id = p.CATEGORIE_ID and cp.CODE = 'fichier-commun'
         join role r on r.CODE = PROFIL.ROLE_ID
where not exists (
        select * from ROLE_PRIVILEGE rp where rp.ROLE_ID = r.id and rp.PRIVILEGE_ID = p.id
    );


--
-- Nouvelle NATURE_FICHIER : 'COMMUNS'
--
insert into NATURE_FICHIER (ID, CODE, LIBELLE)
values (11, 'COMMUNS', 'Fichier commun (ex: modèle d''avenant à la convention de MEL)')
/



select * from PRIVILEGE p
join CATEGORIE_PRIVILEGE cp on cp.id = p.CATEGORIE_ID and cp.CODE = 'fichier-divers';
+16 −20
Original line number Diff line number Diff line
--
-- Nouvelle catégorie.
--
insert into CATEGORIE_PRIVILEGE(ID, CODE, LIBELLE, ORDRE) values (CATEGORIE_PRIVILEGE_ID_SEQ.nextval, 'utilisateur', 'Utilisateur', 5);
insert into CATEGORIE_PRIVILEGE(ID, CODE, LIBELLE, ORDRE) values (666, 'utilisateur', 'Utilisateur', 5);


--
@@ -12,34 +12,30 @@ insert into PRIVILEGE(ID, CATEGORIE_ID, CODE, LIBELLE, ORDRE)
  from CATEGORIE_PRIVILEGE cp where cp.CODE = 'ecole-doctorale';

--
-- Ajout de ROLE_PRIVILEGE_MODELE.
-- Ajout de PROFIL_PRIVILEGE.
--
INSERT INTO ROLE_PRIVILEGE_MODELE (ROLE_CODE, PRIVILEGE_ID)
  with data(role, categ, priv) as (
    select 'ADMIN',       'ecole-doctorale',  'creation' from dual union
    select 'ADMIN_TECH',  'ecole-doctorale',  'creation' from dual union
    select 'BU',          'ecole-doctorale',  'creation' from dual union
    select 'BDD',         'ecole-doctorale',  'creation' from dual union

    select 'ADMIN',       'unite-recherche',  'creation' from dual union
    select 'ADMIN_TECH',  'unite-recherche',  'creation' from dual union
    select 'BU',          'unite-recherche',  'creation' from dual union
    select 'BDD',         'unite-recherche',  'creation' from dual
INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID)
with data(categ, priv) as (
    select 'fichier-divers',  'televerser'  from dual union
    select 'fichier-divers',  'telecharger' from dual
)
    select role, p.id
select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID
from data
         join PROFIL on profil.ROLE_ID in ('ADMIN_TECH')
         join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ
         join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv
;
/

--
-- Application des modèles (ceux pas déjà appliqués).
-- Ajout les privilèges manquant au rôle 'ADMIN_TECH' grâce au profil 'ADMIN_TECH'.
--
insert into ROLE_PRIVILEGE (ROLE_ID, PRIVILEGE_ID)
  SELECT r.id, p.ID
  from ROLE_PRIVILEGE_MODELE rpm
    join role r on r.CODE = rpm.ROLE_CODE
    join PRIVILEGE p on p.id = rpm.PRIVILEGE_ID
    SELECT r.id as ROLE_ID, p.ID as PRIVILEGE_ID
    from PROFIL_PRIVILEGE pp
    join profil on PROFIL.ID = pp.PROFIL_ID and profil.ROLE_ID = 'ADMIN_TECH'
    join PRIVILEGE p on p.id = pp.PRIVILEGE_ID
    join CATEGORIE_PRIVILEGE cp on cp.id = p.CATEGORIE_ID --and cp.CODE = 'fichier-divers'
    join role r on r.CODE = PROFIL.ROLE_ID
    where not exists (
      select * from ROLE_PRIVILEGE rp where rp.ROLE_ID = r.id and rp.PRIVILEGE_ID = p.id
    );
+2 −2
Original line number Diff line number Diff line
@@ -9,8 +9,8 @@ line;enabled;privilege;isRoleDoctorantSelected;;isStructureDuRoleRespectee;;isTh
7;1;\Application\Provider\Privilege\ThesePrivileges::THESE_DEPOT_VERSION_INITIALE;;;;;;;1:1;;;;;;;;;;;;;;;;;;;;;0;Le dépôt d'une version initiale n'est plus possible dès lors qu'une version corrigée est attendue.
8;1;\Application\Provider\Privilege\ThesePrivileges::THESE_DEPOT_VERSION_INITIALE;;;;;;;;;;;;;;;1:1;;;;;;;;;;;;;0;Opération impossible dès lors que la BU a validé.
9;1;\Application\Provider\Privilege\ThesePrivileges::THESE_DEPOT_VERSION_INITIALE;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;
10;1;\Application\Provider\Privilege\ThesePrivileges::FICHIER_DIVERS_TELEVERSER;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;
11;1;\Application\Provider\Privilege\ThesePrivileges::FICHIER_DIVERS_CONSULTER;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;
10;1;\Application\Provider\Privilege\ThesePrivileges::THESE_FICHIER_DIVERS_TELEVERSER;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;
11;1;\Application\Provider\Privilege\ThesePrivileges::THESE_FICHIER_DIVERS_CONSULTER;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;
12;1;\Application\Provider\Privilege\ThesePrivileges::THESE_SAISIE_CONFORMITE_VERSION_ARCHIVAGE_INITIALE;;;;;1:0;;;;;;;;;;;;;;;;;;;;;;;0;L’état de la thèse ne permet pas cette opération.
13;1;\Application\Provider\Privilege\ThesePrivileges::THESE_SAISIE_CONFORMITE_VERSION_ARCHIVAGE_INITIALE;;;;;;;1:1;;;;;;;;;;;;;;;;;;;;;0;Opération impossible dès lors qu’une version corrigée est attendue.
14;1;\Application\Provider\Privilege\ThesePrivileges::THESE_SAISIE_CONFORMITE_VERSION_ARCHIVAGE_INITIALE;;;;;;;;;;;;;;;1:1;;;;;;;;;;;;;0;Opération impossible dès lors que la BU a validé.
Loading