Loading CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ Journal des modifications - [FIX] Soutenance : la création de plusieurs adresses de soutenance doit être empêchée (màj BDD requise). - [FIX] Module HDR : désactivation du comptage des rapporteurs de rang B sans HDR (les gestionnaires vérifieront manuellement). - [FIX] Le rôle Observateur Structure étais éjecté des pages Soutenances (thèses et HDR). - [FIX] Soutenance : la révocation d'un avis de soutenance est impossible dès lors que le dossier de soutenance est passé à l'état 'Dossier complet'. 10.2.1 ------ Loading module/Soutenance/src/Soutenance/Assertion/AvisSoutenanceAssertion.php +7 −8 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ use HDR\Entity\Db\HDR; use Laminas\Permissions\Acl\Assertion\AssertionInterface; use Laminas\Permissions\Acl\Resource\ResourceInterface; use Soutenance\Entity\Avis; use Soutenance\Entity\Etat; use Soutenance\Entity\Membre; use Soutenance\Entity\Proposition; use Soutenance\Entity\PropositionThese; Loading Loading @@ -82,7 +83,6 @@ class AvisSoutenanceAssertion extends AbstractAssertion implements AssertionInt */ protected function assertEntity(ResourceInterface $entity, $privilege = null): bool { if (! parent::assertEntity($entity, $privilege)) { return false; } Loading @@ -93,6 +93,7 @@ class AvisSoutenanceAssertion extends AbstractAssertion implements AssertionInt */ $rapporteur = $entity; $object = $rapporteur instanceof ActeurThese ? $rapporteur->getThese() : $rapporteur->getHDR(); $proposition = $this->propositionService->findOneForObject($object); if($object instanceof These){ if(!$this->userContextService->isStructureDuRoleRespecteeForThese($object)) return false; Loading Loading @@ -120,19 +121,17 @@ class AvisSoutenanceAssertion extends AbstractAssertion implements AssertionInt throw new RuntimeException("Problème de récupération de la date"); } /** @var Proposition $proposition */ $proposition = $this->getPropositionService()->findOneForObject($object); $dateRetour = ($proposition->getRenduRapport())->add(new DateInterval('P1D')); if ($currentDate > $dateRetour) return false; /** * Les personnes pouvant révoquer un avis * - le rapporteur * - le bdd de l'etablissement */ case AvisSoutenancePrivileges::AVIS_ANNULER : if ($proposition->getEtat()->getCode() === Etat::COMPLET) { return false; } $etatObject = $object instanceof These ? $object->getEtatThese() : $object->getEtatHDR(); if($etatObject === These::ETAT_SOUTENUE || $etatObject === HDR::ETAT_SOUTENUE) return false; } return true; } Loading Loading
CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ Journal des modifications - [FIX] Soutenance : la création de plusieurs adresses de soutenance doit être empêchée (màj BDD requise). - [FIX] Module HDR : désactivation du comptage des rapporteurs de rang B sans HDR (les gestionnaires vérifieront manuellement). - [FIX] Le rôle Observateur Structure étais éjecté des pages Soutenances (thèses et HDR). - [FIX] Soutenance : la révocation d'un avis de soutenance est impossible dès lors que le dossier de soutenance est passé à l'état 'Dossier complet'. 10.2.1 ------ Loading
module/Soutenance/src/Soutenance/Assertion/AvisSoutenanceAssertion.php +7 −8 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ use HDR\Entity\Db\HDR; use Laminas\Permissions\Acl\Assertion\AssertionInterface; use Laminas\Permissions\Acl\Resource\ResourceInterface; use Soutenance\Entity\Avis; use Soutenance\Entity\Etat; use Soutenance\Entity\Membre; use Soutenance\Entity\Proposition; use Soutenance\Entity\PropositionThese; Loading Loading @@ -82,7 +83,6 @@ class AvisSoutenanceAssertion extends AbstractAssertion implements AssertionInt */ protected function assertEntity(ResourceInterface $entity, $privilege = null): bool { if (! parent::assertEntity($entity, $privilege)) { return false; } Loading @@ -93,6 +93,7 @@ class AvisSoutenanceAssertion extends AbstractAssertion implements AssertionInt */ $rapporteur = $entity; $object = $rapporteur instanceof ActeurThese ? $rapporteur->getThese() : $rapporteur->getHDR(); $proposition = $this->propositionService->findOneForObject($object); if($object instanceof These){ if(!$this->userContextService->isStructureDuRoleRespecteeForThese($object)) return false; Loading Loading @@ -120,19 +121,17 @@ class AvisSoutenanceAssertion extends AbstractAssertion implements AssertionInt throw new RuntimeException("Problème de récupération de la date"); } /** @var Proposition $proposition */ $proposition = $this->getPropositionService()->findOneForObject($object); $dateRetour = ($proposition->getRenduRapport())->add(new DateInterval('P1D')); if ($currentDate > $dateRetour) return false; /** * Les personnes pouvant révoquer un avis * - le rapporteur * - le bdd de l'etablissement */ case AvisSoutenancePrivileges::AVIS_ANNULER : if ($proposition->getEtat()->getCode() === Etat::COMPLET) { return false; } $etatObject = $object instanceof These ? $object->getEtatThese() : $object->getEtatHDR(); if($etatObject === These::ETAT_SOUTENUE || $etatObject === HDR::ETAT_SOUTENUE) return false; } return true; } Loading