Loading doc/release-notes/8.6.1/01_divers.sql +6 −0 Changes for doc/release-notes/8.6.1/01_divers.sql: 6 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -176,3 +176,9 @@ SET document_corps = '<h1 style="text-align: center;">Convention de formation do <h2>Validations accordées à la convention de formation doctorale</h2> <p>VAR[AdmissionConventionFormationDoctorale#Operations]</p>' WHERE code = 'ADMISSION_CONVENTION_FORMATION_DOCTORALE'; -- -- Formation -- ALTER TABLE formation_session ADD COLUMN date_publication timestamp; No newline at end of file module/Formation/config/others/session.config.php +20 −0 Changes for module/Formation/config/others/session.config.php: 20 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -57,6 +57,15 @@ return [ SessionPrivileges::SESSION_INDEX, ], ], [ 'controller' => SessionController::class, 'action' => [ 'generer-export-csv' ], 'privileges' => [ SessionPrivileges::SESSION_INDEX, ], ], [ 'controller' => SessionController::class, 'action' => [ Loading Loading @@ -311,6 +320,17 @@ return [ ], ], ], 'generer-export-csv' => [ 'type' => Segment::class, 'options' => [ 'route' => '/generer-export-csv', 'defaults' => [ /** @see SessionController::genererExportCsvAction() */ 'controller' => SessionController::class, 'action' => 'generer-export-csv', ], ], ], ], ], ], Loading module/Formation/src/Formation/Assertion/Inscription/InscriptionAssertion.php +28 −5 Changes for module/Formation/src/Formation/Assertion/Inscription/InscriptionAssertion.php: 28 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -4,15 +4,18 @@ namespace Formation\Assertion\Inscription; use Application\Assertion\AbstractAssertion; use Application\Entity\Db\Role; use Application\Service\AnneeUniv\AnneeUnivServiceAwareTrait; use Application\Service\UserContextServiceAwareInterface; use DateInterval; use DateTime; use Doctorant\Service\DoctorantServiceAwareTrait; use Exception; use Formation\Entity\Db\Etat; use Formation\Entity\Db\Inscription; use Formation\Entity\Db\Session; use Formation\Provider\Privilege\InscriptionPrivileges; use Formation\Service\Inscription\InscriptionServiceAwareTrait; use Formation\Service\Session\SessionServiceAwareTrait; use JetBrains\PhpStorm\Pure; use Laminas\Permissions\Acl\Assertion\AssertionInterface; use Laminas\Permissions\Acl\Resource\ResourceInterface; Loading @@ -23,6 +26,9 @@ class InscriptionAssertion extends AbstractAssertion implements AssertionInterf { use DoctorantServiceAwareTrait; use InscriptionServiceAwareTrait; use InscriptionServiceAwareTrait; use AnneeUnivServiceAwareTrait; use SessionServiceAwareTrait; private ?int $delaiDescinscription = null; Loading Loading @@ -73,6 +79,22 @@ class InscriptionAssertion extends AbstractAssertion implements AssertionInterf if($sessionId) $inscription = $this->getInscriptionService()->getRepository()->find($sessionId); switch($action) { case 'ajouter' : $doctorantId = (($this->getMvcEvent()->getRouteMatch()->getParam('doctorant'))); if ($inscription === null && $doctorantId) { $sessionId = (($this->getMvcEvent()->getRouteMatch()->getParam('session'))); if($sessionId){ $doctorant = $this->doctorantService->getRepository()->find($doctorantId); $session = $this->sessionService->getRepository()->find($sessionId); $inscription = new Inscription(); $inscription->setDoctorant($doctorant); $inscription->setSession($session); return $this->scopeValide($inscription); } return false; } return true; case 'desinscription' : if ($inscription !== null) { return $this->canDesinscrire($inscription); Loading @@ -89,9 +111,11 @@ class InscriptionAssertion extends AbstractAssertion implements AssertionInterf return false; } switch ($privilege) { case InscriptionPrivileges::INSCRIPTION_AJOUTER : return $this->canDesinscrire($entity); $inscription = $entity; if ($privilege == InscriptionPrivileges::INSCRIPTION_AJOUTER) { if ($inscription->getHistoCreateur()) return $this->canDesinscrire($entity); return $this->scopeValide($inscription); } return true; Loading Loading @@ -125,13 +149,12 @@ class InscriptionAssertion extends AbstractAssertion implements AssertionInterf return false; } switch ($role->getRoleId()) { switch ($role->getCode()) { case Role::CODE_DOCTORANT : $doctorant = $inscription->getDoctorant(); $userDoctorant = $this->doctorantService->getRepository()->findOneByIndividu($individu); return $doctorant === $userDoctorant; } return true; } } No newline at end of file module/Formation/src/Formation/Assertion/Inscription/InscriptionAssertionFactory.php +8 −0 Changes for module/Formation/src/Formation/Assertion/Inscription/InscriptionAssertionFactory.php: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,9 +2,11 @@ namespace Formation\Assertion\Inscription; use Application\Service\AnneeUniv\AnneeUnivService; use Doctorant\Service\DoctorantService; use Formation\Provider\Parametre\FormationParametres; use Formation\Service\Inscription\InscriptionService; use Formation\Service\Session\SessionService; use Laminas\Mvc\Application; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; Loading @@ -23,14 +25,20 @@ class InscriptionAssertionFactory { * @see DoctorantService $doctorantService * @see InscriptionService $inscriptionService * @see ParametreService $parametreService * @see AnneeUnivService $anneeUnivService * @see SessionService $sessionService */ $doctorantService = $container->get(DoctorantService::class); $inscriptionService = $container->get(InscriptionService::class); $parametreService = $container->get(ParametreService::class); $anneeUnivService = $container->get(AnneeUnivService::class); $sessionService = $container->get(SessionService::class); $assertion = new InscriptionAssertion(); $assertion->setDoctorantService($doctorantService); $assertion->setInscriptionService($inscriptionService); $assertion->setAnneeUnivService($anneeUnivService); $assertion->setSessionService($sessionService); $assertion->setDelaiDescinscription($parametreService->getValeurForParametre(FormationParametres::CATEGORIE, FormationParametres::DELAI_ANNULATION_INSCRIPTION)); /* @var $application Application */ Loading module/Formation/src/Formation/Assertion/Session/SessionAssertion.php +1 −6 Changes for module/Formation/src/Formation/Assertion/Session/SessionAssertion.php: 1 added line, 6 removed lines. Original line number Diff line number Diff line Loading @@ -76,13 +76,8 @@ class SessionAssertion extends AbstractAssertion implements AssertionInterface, switch ($role->getCode()) { case Role::CODE_DOCTORANT : $inscrits = $session->getInscriptions()->toArray(); $userDoctorant = $this->doctorantService->getRepository()->findOneByIndividu($individu); foreach($inscrits as $inscrit){ /** @var Inscription $inscrit */ if($inscrit->getDoctorant() === $userDoctorant) return true; } return false; return $session->estInscrit($userDoctorant); } return true; } Loading Loading
doc/release-notes/8.6.1/01_divers.sql +6 −0 Changes for doc/release-notes/8.6.1/01_divers.sql: 6 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -176,3 +176,9 @@ SET document_corps = '<h1 style="text-align: center;">Convention de formation do <h2>Validations accordées à la convention de formation doctorale</h2> <p>VAR[AdmissionConventionFormationDoctorale#Operations]</p>' WHERE code = 'ADMISSION_CONVENTION_FORMATION_DOCTORALE'; -- -- Formation -- ALTER TABLE formation_session ADD COLUMN date_publication timestamp; No newline at end of file
module/Formation/config/others/session.config.php +20 −0 Changes for module/Formation/config/others/session.config.php: 20 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -57,6 +57,15 @@ return [ SessionPrivileges::SESSION_INDEX, ], ], [ 'controller' => SessionController::class, 'action' => [ 'generer-export-csv' ], 'privileges' => [ SessionPrivileges::SESSION_INDEX, ], ], [ 'controller' => SessionController::class, 'action' => [ Loading Loading @@ -311,6 +320,17 @@ return [ ], ], ], 'generer-export-csv' => [ 'type' => Segment::class, 'options' => [ 'route' => '/generer-export-csv', 'defaults' => [ /** @see SessionController::genererExportCsvAction() */ 'controller' => SessionController::class, 'action' => 'generer-export-csv', ], ], ], ], ], ], Loading
module/Formation/src/Formation/Assertion/Inscription/InscriptionAssertion.php +28 −5 Changes for module/Formation/src/Formation/Assertion/Inscription/InscriptionAssertion.php: 28 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -4,15 +4,18 @@ namespace Formation\Assertion\Inscription; use Application\Assertion\AbstractAssertion; use Application\Entity\Db\Role; use Application\Service\AnneeUniv\AnneeUnivServiceAwareTrait; use Application\Service\UserContextServiceAwareInterface; use DateInterval; use DateTime; use Doctorant\Service\DoctorantServiceAwareTrait; use Exception; use Formation\Entity\Db\Etat; use Formation\Entity\Db\Inscription; use Formation\Entity\Db\Session; use Formation\Provider\Privilege\InscriptionPrivileges; use Formation\Service\Inscription\InscriptionServiceAwareTrait; use Formation\Service\Session\SessionServiceAwareTrait; use JetBrains\PhpStorm\Pure; use Laminas\Permissions\Acl\Assertion\AssertionInterface; use Laminas\Permissions\Acl\Resource\ResourceInterface; Loading @@ -23,6 +26,9 @@ class InscriptionAssertion extends AbstractAssertion implements AssertionInterf { use DoctorantServiceAwareTrait; use InscriptionServiceAwareTrait; use InscriptionServiceAwareTrait; use AnneeUnivServiceAwareTrait; use SessionServiceAwareTrait; private ?int $delaiDescinscription = null; Loading Loading @@ -73,6 +79,22 @@ class InscriptionAssertion extends AbstractAssertion implements AssertionInterf if($sessionId) $inscription = $this->getInscriptionService()->getRepository()->find($sessionId); switch($action) { case 'ajouter' : $doctorantId = (($this->getMvcEvent()->getRouteMatch()->getParam('doctorant'))); if ($inscription === null && $doctorantId) { $sessionId = (($this->getMvcEvent()->getRouteMatch()->getParam('session'))); if($sessionId){ $doctorant = $this->doctorantService->getRepository()->find($doctorantId); $session = $this->sessionService->getRepository()->find($sessionId); $inscription = new Inscription(); $inscription->setDoctorant($doctorant); $inscription->setSession($session); return $this->scopeValide($inscription); } return false; } return true; case 'desinscription' : if ($inscription !== null) { return $this->canDesinscrire($inscription); Loading @@ -89,9 +111,11 @@ class InscriptionAssertion extends AbstractAssertion implements AssertionInterf return false; } switch ($privilege) { case InscriptionPrivileges::INSCRIPTION_AJOUTER : return $this->canDesinscrire($entity); $inscription = $entity; if ($privilege == InscriptionPrivileges::INSCRIPTION_AJOUTER) { if ($inscription->getHistoCreateur()) return $this->canDesinscrire($entity); return $this->scopeValide($inscription); } return true; Loading Loading @@ -125,13 +149,12 @@ class InscriptionAssertion extends AbstractAssertion implements AssertionInterf return false; } switch ($role->getRoleId()) { switch ($role->getCode()) { case Role::CODE_DOCTORANT : $doctorant = $inscription->getDoctorant(); $userDoctorant = $this->doctorantService->getRepository()->findOneByIndividu($individu); return $doctorant === $userDoctorant; } return true; } } No newline at end of file
module/Formation/src/Formation/Assertion/Inscription/InscriptionAssertionFactory.php +8 −0 Changes for module/Formation/src/Formation/Assertion/Inscription/InscriptionAssertionFactory.php: 8 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,9 +2,11 @@ namespace Formation\Assertion\Inscription; use Application\Service\AnneeUniv\AnneeUnivService; use Doctorant\Service\DoctorantService; use Formation\Provider\Parametre\FormationParametres; use Formation\Service\Inscription\InscriptionService; use Formation\Service\Session\SessionService; use Laminas\Mvc\Application; use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; Loading @@ -23,14 +25,20 @@ class InscriptionAssertionFactory { * @see DoctorantService $doctorantService * @see InscriptionService $inscriptionService * @see ParametreService $parametreService * @see AnneeUnivService $anneeUnivService * @see SessionService $sessionService */ $doctorantService = $container->get(DoctorantService::class); $inscriptionService = $container->get(InscriptionService::class); $parametreService = $container->get(ParametreService::class); $anneeUnivService = $container->get(AnneeUnivService::class); $sessionService = $container->get(SessionService::class); $assertion = new InscriptionAssertion(); $assertion->setDoctorantService($doctorantService); $assertion->setInscriptionService($inscriptionService); $assertion->setAnneeUnivService($anneeUnivService); $assertion->setSessionService($sessionService); $assertion->setDelaiDescinscription($parametreService->getValeurForParametre(FormationParametres::CATEGORIE, FormationParametres::DELAI_ANNULATION_INSCRIPTION)); /* @var $application Application */ Loading
module/Formation/src/Formation/Assertion/Session/SessionAssertion.php +1 −6 Changes for module/Formation/src/Formation/Assertion/Session/SessionAssertion.php: 1 added line, 6 removed lines. Original line number Diff line number Diff line Loading @@ -76,13 +76,8 @@ class SessionAssertion extends AbstractAssertion implements AssertionInterface, switch ($role->getCode()) { case Role::CODE_DOCTORANT : $inscrits = $session->getInscriptions()->toArray(); $userDoctorant = $this->doctorantService->getRepository()->findOneByIndividu($individu); foreach($inscrits as $inscrit){ /** @var Inscription $inscrit */ if($inscrit->getDoctorant() === $userDoctorant) return true; } return false; return $session->estInscrit($userDoctorant); } return true; } Loading