Loading doc/release-notes/v4.0.4.md +59 −0 Changes for doc/release-notes/v4.0.4.md: 59 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ git fetch --tags && git checkout --force 4.0.4 && bash ./install.sh ## 2. Dans la base de données - Creation de la table contenant les compléments d'individu : email, établissement, unité de recherche ```SQL create table individu_compl ( Loading @@ -32,3 +34,60 @@ create table individu_compl ); create unique index individu_compl_id_uindex on individu_compl (id); ``` - Ajout des privilèges ```SQL insert into categorie_privilege (code, libelle, ordre) values ('individu', 'Gestion des individus', 500); INSERT INTO privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE) WITH d(code, lib, ordre) AS ( SELECT 'individucompl_index', 'Accéder à l''index des compléments d''individu', 10 UNION SELECT 'individucompl_afficher', 'Afficher un complément d''individu', 20 UNION SELECT 'individucompl_modifier', 'Modifier un complément d''individu', 30 UNION SELECT 'individucompl_supprimer', 'Suppression un complément d''individu', 40 ) SELECT cp.id, d.code, d.lib, d.ordre FROM d JOIN categorie_privilege cp ON cp.CODE = 'individu'; ``` - Accord les privilèges : Admin, Mdd, doctorant, directeur, co-directeurs ```SQL INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as ( select 'individu'::text, 'individucompl_index'::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 PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as ( select 'individu'::text, 'individucompl_afficher'::text UNION select 'individu'::text, 'individucompl_modifier'::text UNION select 'individu'::text, 'individucompl_supprimer'::text ) select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID from data join PROFIL on profil.ROLE_ID in ('ADMIN_TECH', 'BDD', 'DOCTORANT', 'D', 'K') 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 ) ; ``` No newline at end of file module/Application/config/others/individu-compl.config.php +29 −2 Changes for module/Application/config/others/individu-compl.config.php: 29 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ use Application\Form\IndividuCompl\IndividuComplForm; use Application\Form\IndividuCompl\IndividuComplFormFactory; use Application\Form\IndividuCompl\IndividuComplHydrator; use Application\Form\IndividuCompl\IndividuComplHydratorFactory; use Application\Provider\Privilege\IndividuPrivileges; use Application\Service\IndividuCompl\IndividuComplService; use Application\Service\IndividuCompl\IndividuComplServiceFactory; use Laminas\Router\Http\Literal; Loading @@ -23,15 +24,41 @@ return [ 'controller' => IndividuComplController::class, 'action' => [ 'index', ], 'privilege' => [ IndividuPrivileges::INDIVIDU_COMPLMENT_INDEX, ], ], [ 'controller' => IndividuComplController::class, 'action' => [ 'afficher', ], 'privilege' => [ IndividuPrivileges::INDIVIDU_COMPLMENT_AFFICHER, ], ], [ 'controller' => IndividuComplController::class, 'action' => [ 'gerer', 'ajouter', 'modifier', 'historiser', 'restaurer', 'restaurer' ], 'privilege' => [ IndividuPrivileges::INDIVIDU_COMPLMENT_AFFICHER, ], ], [ 'controller' => IndividuComplController::class, 'action' => [ 'detruire', ], 'role' => [], 'privilege' => [ IndividuPrivileges::INDIVIDU_COMPLMENT_SUPPRIMER, ], ], ], ], Loading module/Application/src/Application/Provider/Privilege/IndividuPrivileges.php 0 → 100644 +14 −0 Changes for module/Application/src/Application/Provider/Privilege/IndividuPrivileges.php: 14 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application\Provider\Privilege; use UnicaenAuth\Provider\Privilege\Privileges; class IndividuPrivileges extends Privileges { /** Gestion des complements d'individus */ const INDIVIDU_COMPLMENT_INDEX = 'individu-individucompl_index'; const INDIVIDU_COMPLMENT_AFFICHER = 'individu-individucompl_afficher'; const INDIVIDU_COMPLMENT_MODIFIER = 'individu-individucompl_modifier'; const INDIVIDU_COMPLMENT_SUPPRIMER = 'individu-individucompl_supprimer'; } No newline at end of file module/Application/view/application/individu-compl/index.phtml +9 −6 Changes for module/Application/view/application/individu-compl/index.phtml: 9 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -5,13 +5,16 @@ * @var array $complements */ use Application\Entity\Db\IndividuCompl;$this->headTitle("Liste des compléments d'individu"); use Application\Entity\Db\IndividuCompl; use Application\Provider\Privilege\IndividuPrivileges; $canAfficher = true; $canAjouter = true; $canModifier = true; $canHistoriser = true; $canDetruire = true; $this->headTitle("Liste des compléments d'individu"); $canAfficher = $this->isAllowed(IndividuPrivileges::getResourceId(IndividuPrivileges::INDIVIDU_COMPLMENT_AFFICHER)); $canAjouter = $this->isAllowed(IndividuPrivileges::getResourceId(IndividuPrivileges::INDIVIDU_COMPLMENT_MODIFIER)); $canModifier = $canAjouter; $canHistoriser = $canAjouter; $canDetruire = $this->isAllowed(IndividuPrivileges::getResourceId(IndividuPrivileges::INDIVIDU_COMPLMENT_SUPPRIMER));; ?> Loading Loading
doc/release-notes/v4.0.4.md +59 −0 Changes for doc/release-notes/v4.0.4.md: 59 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ git fetch --tags && git checkout --force 4.0.4 && bash ./install.sh ## 2. Dans la base de données - Creation de la table contenant les compléments d'individu : email, établissement, unité de recherche ```SQL create table individu_compl ( Loading @@ -32,3 +34,60 @@ create table individu_compl ); create unique index individu_compl_id_uindex on individu_compl (id); ``` - Ajout des privilèges ```SQL insert into categorie_privilege (code, libelle, ordre) values ('individu', 'Gestion des individus', 500); INSERT INTO privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE) WITH d(code, lib, ordre) AS ( SELECT 'individucompl_index', 'Accéder à l''index des compléments d''individu', 10 UNION SELECT 'individucompl_afficher', 'Afficher un complément d''individu', 20 UNION SELECT 'individucompl_modifier', 'Modifier un complément d''individu', 30 UNION SELECT 'individucompl_supprimer', 'Suppression un complément d''individu', 40 ) SELECT cp.id, d.code, d.lib, d.ordre FROM d JOIN categorie_privilege cp ON cp.CODE = 'individu'; ``` - Accord les privilèges : Admin, Mdd, doctorant, directeur, co-directeurs ```SQL INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as ( select 'individu'::text, 'individucompl_index'::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 PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as ( select 'individu'::text, 'individucompl_afficher'::text UNION select 'individu'::text, 'individucompl_modifier'::text UNION select 'individu'::text, 'individucompl_supprimer'::text ) select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID from data join PROFIL on profil.ROLE_ID in ('ADMIN_TECH', 'BDD', 'DOCTORANT', 'D', 'K') 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 ) ; ``` No newline at end of file
module/Application/config/others/individu-compl.config.php +29 −2 Changes for module/Application/config/others/individu-compl.config.php: 29 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ use Application\Form\IndividuCompl\IndividuComplForm; use Application\Form\IndividuCompl\IndividuComplFormFactory; use Application\Form\IndividuCompl\IndividuComplHydrator; use Application\Form\IndividuCompl\IndividuComplHydratorFactory; use Application\Provider\Privilege\IndividuPrivileges; use Application\Service\IndividuCompl\IndividuComplService; use Application\Service\IndividuCompl\IndividuComplServiceFactory; use Laminas\Router\Http\Literal; Loading @@ -23,15 +24,41 @@ return [ 'controller' => IndividuComplController::class, 'action' => [ 'index', ], 'privilege' => [ IndividuPrivileges::INDIVIDU_COMPLMENT_INDEX, ], ], [ 'controller' => IndividuComplController::class, 'action' => [ 'afficher', ], 'privilege' => [ IndividuPrivileges::INDIVIDU_COMPLMENT_AFFICHER, ], ], [ 'controller' => IndividuComplController::class, 'action' => [ 'gerer', 'ajouter', 'modifier', 'historiser', 'restaurer', 'restaurer' ], 'privilege' => [ IndividuPrivileges::INDIVIDU_COMPLMENT_AFFICHER, ], ], [ 'controller' => IndividuComplController::class, 'action' => [ 'detruire', ], 'role' => [], 'privilege' => [ IndividuPrivileges::INDIVIDU_COMPLMENT_SUPPRIMER, ], ], ], ], Loading
module/Application/src/Application/Provider/Privilege/IndividuPrivileges.php 0 → 100644 +14 −0 Changes for module/Application/src/Application/Provider/Privilege/IndividuPrivileges.php: 14 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application\Provider\Privilege; use UnicaenAuth\Provider\Privilege\Privileges; class IndividuPrivileges extends Privileges { /** Gestion des complements d'individus */ const INDIVIDU_COMPLMENT_INDEX = 'individu-individucompl_index'; const INDIVIDU_COMPLMENT_AFFICHER = 'individu-individucompl_afficher'; const INDIVIDU_COMPLMENT_MODIFIER = 'individu-individucompl_modifier'; const INDIVIDU_COMPLMENT_SUPPRIMER = 'individu-individucompl_supprimer'; } No newline at end of file
module/Application/view/application/individu-compl/index.phtml +9 −6 Changes for module/Application/view/application/individu-compl/index.phtml: 9 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -5,13 +5,16 @@ * @var array $complements */ use Application\Entity\Db\IndividuCompl;$this->headTitle("Liste des compléments d'individu"); use Application\Entity\Db\IndividuCompl; use Application\Provider\Privilege\IndividuPrivileges; $canAfficher = true; $canAjouter = true; $canModifier = true; $canHistoriser = true; $canDetruire = true; $this->headTitle("Liste des compléments d'individu"); $canAfficher = $this->isAllowed(IndividuPrivileges::getResourceId(IndividuPrivileges::INDIVIDU_COMPLMENT_AFFICHER)); $canAjouter = $this->isAllowed(IndividuPrivileges::getResourceId(IndividuPrivileges::INDIVIDU_COMPLMENT_MODIFIER)); $canModifier = $canAjouter; $canHistoriser = $canAjouter; $canDetruire = $this->isAllowed(IndividuPrivileges::getResourceId(IndividuPrivileges::INDIVIDU_COMPLMENT_SUPPRIMER));; ?> Loading