Loading doc/release-notes/module_hdr/05_others.sql 0 → 100644 +25 −0 Changes for doc/release-notes/module_hdr/05_others.sql: 25 added lines, 0 removed lines. Original line number Diff line number Diff line INSERT INTO public.unicaen_privilege_privilege (categorie_id, code, libelle, ordre) VALUES ((SELECT id FROM unicaen_privilege_categorie WHERE code = 'these'), 'donner-resultat', 'Attribution du résultat de la thèse saisie dans SyGAL suite à la soutenance', 3060); -- -- Accord de privilèges à des profils. -- INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as (select 'these', 'donner-resultat') select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID from data join PROFIL on profil.ROLE_ID in ( 'ADMIN_TECH', 'BDD' ) join unicaen_privilege_categorie cp on cp.CODE = data.categ join unicaen_privilege_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/Soutenance/config/others/intervention.config.php +0 −5 Changes for module/Soutenance/config/others/intervention.config.php: 0 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -86,13 +86,8 @@ return [ 'order' => 250, 'resource' => InterventionPrivileges::getResourceId(InterventionPrivileges::INTERVENTION_AFFICHER), 'withtarget' => true, // 'paramsInject' => [ // 'these', // ], 'paramsInject' => [ 'type', 'these', 'id', ], ], ], Loading module/Soutenance/config/others/presoutenance.config.php +5 −1 Changes for module/Soutenance/config/others/presoutenance.config.php: 5 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ use Soutenance\Provider\Privilege\EngagementImpartialitePrivileges; use Soutenance\Provider\Privilege\PresoutenancePrivileges; use Soutenance\Service\Adresse\AdresseService; use Soutenance\Service\Adresse\AdresseServiceFactory; use These\Provider\Privilege\ThesePrivileges; use UnicaenPrivilege\Guard\PrivilegeController; return [ Loading Loading @@ -67,7 +68,10 @@ return [ 'action' => [ 'deliberation-jury', ], 'privileges' => HDRPrivileges::HDR_DONNER_RESULTAT, 'privileges' => [ HDRPrivileges::HDR_DONNER_RESULTAT, ThesePrivileges::THESE_DONNER_RESULTAT ], 'assertion' => PresoutenanceAssertion::class, ], [ Loading module/Soutenance/config/others/presoutenanceThese.config.php +10 −0 Changes for module/Soutenance/config/others/presoutenanceThese.config.php: 10 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ use Soutenance\Controller\These\Presoutenance\PresoutenanceTheseControllerFactor use Soutenance\Provider\Privilege\AvisSoutenancePrivileges; use Soutenance\Provider\Privilege\EngagementImpartialitePrivileges; use Soutenance\Provider\Privilege\PresoutenancePrivileges; use These\Provider\Privilege\ThesePrivileges; use UnicaenPrivilege\Guard\PrivilegeController; use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProvider; Loading @@ -27,6 +28,7 @@ return [ PresoutenancePrivileges::PRESOUTENANCE_ASSOCIATION_MEMBRE_INDIVIDU, PresoutenancePrivileges::PRESOUTENANCE_DATE_RETOUR_MODIFICATION, PresoutenancePrivileges::PRESOUTENANCE_PRESOUTENANCE_VISUALISATION, ThesePrivileges::THESE_DONNER_RESULTAT ], 'resources' => ['These'], 'assertion' => PresoutenanceAssertion::class, Loading Loading @@ -67,6 +69,14 @@ return [ ], 'privileges' => PresoutenancePrivileges::PRESOUTENANCE_DATE_RETOUR_MODIFICATION, ], [ 'controller' => PresoutenanceTheseController::class, 'action' => [ 'deliberation-jury', ], 'privileges' => ThesePrivileges::THESE_DONNER_RESULTAT, 'assertion' => PresoutenanceAssertion::class, ], [ 'controller' => PresoutenanceTheseController::class, 'action' => [ Loading module/Soutenance/src/Soutenance/Assertion/PresoutenanceAssertion.php +5 −2 Changes for module/Soutenance/src/Soutenance/Assertion/PresoutenanceAssertion.php: 5 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ use Soutenance\Entity\Proposition; use Soutenance\Entity\PropositionHDR; use Soutenance\Provider\Privilege\PresoutenancePrivileges; use These\Entity\Db\These; use These\Provider\Privilege\ThesePrivileges; use These\Service\These\TheseServiceAwareTrait; use UnicaenApp\Service\MessageCollectorAwareInterface; use UnicaenApp\Service\MessageCollectorAwareTrait; Loading Loading @@ -77,9 +78,11 @@ class PresoutenanceAssertion extends AbstractAssertion $role = $this->userContextService->getSelectedIdentityRole(); return (($role->getCode() === Role::CODE_BDD || Role::CODE_GEST_HDR) && $role->getStructure() === $this->entity->getEtablissement()->getStructure()); case HDRPrivileges::HDR_DONNER_RESULTAT: case ThesePrivileges::THESE_DONNER_RESULTAT: /** @var Proposition $p */ $proposition = $this->entity->getCurrentProposition(); if($proposition instanceof PropositionHDR && $proposition->getEtat()->getCode() !== Etat::VALIDEE) return false; $estSaisieDansSygal = !$proposition->getObject()->getSource()->getImportable(); if(!$estSaisieDansSygal || $proposition->getEtat()->getCode() !== Etat::VALIDEE) return false; } Loading Loading @@ -127,7 +130,7 @@ class PresoutenanceAssertion extends AbstractAssertion case 'deliberation-jury': /** @var Proposition $p */ $proposition = $this->entity->getCurrentProposition(); if($proposition instanceof PropositionHDR && $proposition->getEtat()->getCode() !== Etat::VALIDEE) return false; if($proposition->getEtat()->getCode() !== Etat::VALIDEE) return false; break; } } catch (FailedAssertionException $e) { Loading Loading
doc/release-notes/module_hdr/05_others.sql 0 → 100644 +25 −0 Changes for doc/release-notes/module_hdr/05_others.sql: 25 added lines, 0 removed lines. Original line number Diff line number Diff line INSERT INTO public.unicaen_privilege_privilege (categorie_id, code, libelle, ordre) VALUES ((SELECT id FROM unicaen_privilege_categorie WHERE code = 'these'), 'donner-resultat', 'Attribution du résultat de la thèse saisie dans SyGAL suite à la soutenance', 3060); -- -- Accord de privilèges à des profils. -- INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as (select 'these', 'donner-resultat') select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID from data join PROFIL on profil.ROLE_ID in ( 'ADMIN_TECH', 'BDD' ) join unicaen_privilege_categorie cp on cp.CODE = data.categ join unicaen_privilege_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/Soutenance/config/others/intervention.config.php +0 −5 Changes for module/Soutenance/config/others/intervention.config.php: 0 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -86,13 +86,8 @@ return [ 'order' => 250, 'resource' => InterventionPrivileges::getResourceId(InterventionPrivileges::INTERVENTION_AFFICHER), 'withtarget' => true, // 'paramsInject' => [ // 'these', // ], 'paramsInject' => [ 'type', 'these', 'id', ], ], ], Loading
module/Soutenance/config/others/presoutenance.config.php +5 −1 Changes for module/Soutenance/config/others/presoutenance.config.php: 5 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ use Soutenance\Provider\Privilege\EngagementImpartialitePrivileges; use Soutenance\Provider\Privilege\PresoutenancePrivileges; use Soutenance\Service\Adresse\AdresseService; use Soutenance\Service\Adresse\AdresseServiceFactory; use These\Provider\Privilege\ThesePrivileges; use UnicaenPrivilege\Guard\PrivilegeController; return [ Loading Loading @@ -67,7 +68,10 @@ return [ 'action' => [ 'deliberation-jury', ], 'privileges' => HDRPrivileges::HDR_DONNER_RESULTAT, 'privileges' => [ HDRPrivileges::HDR_DONNER_RESULTAT, ThesePrivileges::THESE_DONNER_RESULTAT ], 'assertion' => PresoutenanceAssertion::class, ], [ Loading
module/Soutenance/config/others/presoutenanceThese.config.php +10 −0 Changes for module/Soutenance/config/others/presoutenanceThese.config.php: 10 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ use Soutenance\Controller\These\Presoutenance\PresoutenanceTheseControllerFactor use Soutenance\Provider\Privilege\AvisSoutenancePrivileges; use Soutenance\Provider\Privilege\EngagementImpartialitePrivileges; use Soutenance\Provider\Privilege\PresoutenancePrivileges; use These\Provider\Privilege\ThesePrivileges; use UnicaenPrivilege\Guard\PrivilegeController; use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProvider; Loading @@ -27,6 +28,7 @@ return [ PresoutenancePrivileges::PRESOUTENANCE_ASSOCIATION_MEMBRE_INDIVIDU, PresoutenancePrivileges::PRESOUTENANCE_DATE_RETOUR_MODIFICATION, PresoutenancePrivileges::PRESOUTENANCE_PRESOUTENANCE_VISUALISATION, ThesePrivileges::THESE_DONNER_RESULTAT ], 'resources' => ['These'], 'assertion' => PresoutenanceAssertion::class, Loading Loading @@ -67,6 +69,14 @@ return [ ], 'privileges' => PresoutenancePrivileges::PRESOUTENANCE_DATE_RETOUR_MODIFICATION, ], [ 'controller' => PresoutenanceTheseController::class, 'action' => [ 'deliberation-jury', ], 'privileges' => ThesePrivileges::THESE_DONNER_RESULTAT, 'assertion' => PresoutenanceAssertion::class, ], [ 'controller' => PresoutenanceTheseController::class, 'action' => [ Loading
module/Soutenance/src/Soutenance/Assertion/PresoutenanceAssertion.php +5 −2 Changes for module/Soutenance/src/Soutenance/Assertion/PresoutenanceAssertion.php: 5 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ use Soutenance\Entity\Proposition; use Soutenance\Entity\PropositionHDR; use Soutenance\Provider\Privilege\PresoutenancePrivileges; use These\Entity\Db\These; use These\Provider\Privilege\ThesePrivileges; use These\Service\These\TheseServiceAwareTrait; use UnicaenApp\Service\MessageCollectorAwareInterface; use UnicaenApp\Service\MessageCollectorAwareTrait; Loading Loading @@ -77,9 +78,11 @@ class PresoutenanceAssertion extends AbstractAssertion $role = $this->userContextService->getSelectedIdentityRole(); return (($role->getCode() === Role::CODE_BDD || Role::CODE_GEST_HDR) && $role->getStructure() === $this->entity->getEtablissement()->getStructure()); case HDRPrivileges::HDR_DONNER_RESULTAT: case ThesePrivileges::THESE_DONNER_RESULTAT: /** @var Proposition $p */ $proposition = $this->entity->getCurrentProposition(); if($proposition instanceof PropositionHDR && $proposition->getEtat()->getCode() !== Etat::VALIDEE) return false; $estSaisieDansSygal = !$proposition->getObject()->getSource()->getImportable(); if(!$estSaisieDansSygal || $proposition->getEtat()->getCode() !== Etat::VALIDEE) return false; } Loading Loading @@ -127,7 +130,7 @@ class PresoutenanceAssertion extends AbstractAssertion case 'deliberation-jury': /** @var Proposition $p */ $proposition = $this->entity->getCurrentProposition(); if($proposition instanceof PropositionHDR && $proposition->getEtat()->getCode() !== Etat::VALIDEE) return false; if($proposition->getEtat()->getCode() !== Etat::VALIDEE) return false; break; } } catch (FailedAssertionException $e) { Loading