Loading config/autoload/global.php +0 −2 Changes for config/autoload/global.php: 0 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -910,8 +910,6 @@ const CONFIG_SYNCHROS = [ 'source_code_column' => 'source_code', 'id_strategy' => 'SEQUENCE', 'id_sequence' => null, 'undelete_enabled_column' => 'synchro_undelete_enabled', // pour ne pas que les substitués soient déhistorisés 'update_on_deleted_enabled_column' => 'synchro_update_on_deleted_enabled', // pour activer la màj des substitués (historisés) ], ], ////////////////////////////////////////////// INDIVIDU ////////////////////////////////////////////// Loading module/Admission/Sql/admission.sql +25 −2 Changes for module/Admission/Sql/admission.sql: 25 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -1095,8 +1095,31 @@ from data 'GEST_ED', 'RESP_UR', 'RESP_ED', 'D', 'K' 'D', -- Directeur 'K', -- Co-directeur 'BDD' -- Maison du Doctorat ) 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); -- ajout des privilèges communs au profil GEST_ED, RESP_UR, RESP_ED, D, K INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as (select 'admission', 'admission-afficher-son-dossier-admission' union select 'admission', 'admission-lister-mes-dossiers-admission' union select 'admission', 'admission-telecharger-son-document' union select 'admission', 'admission-acceder-commentaires' union select 'admission', 'admission-convention-formation-generer' union select 'admission', 'admission-afficher-son-dossier-admission-dans-liste') select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID from data join PROFIL on profil.ROLE_ID in ( 'BDD' -- Maison du Doctorat ) join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv Loading module/Admission/config/module.config.php +101 −4 Changes for module/Admission/config/module.config.php: 101 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -11,6 +11,8 @@ use Admission\Config\ModuleConfig; use Admission\Config\ModuleConfigFactory; use Admission\Controller\AdmissionController; use Admission\Controller\AdmissionControllerFactory; use Admission\Controller\AdmissionRechercheController; use Admission\Controller\AdmissionRechercheControllerFactory; use Admission\Controller\Validation\AdmissionValidationController; use Admission\Controller\Validation\AdmissionValidationControllerFactory; use Admission\Event\AdmissionEventListener; Loading Loading @@ -48,6 +50,8 @@ use Admission\Hydrator\Validation\AdmissionValidationHydratorFactory; use Admission\Hydrator\Verification\VerificationHydrator; use Admission\Hydrator\Verification\VerificationHydratorFactory; use Admission\Provider\Privilege\AdmissionPrivileges; use Admission\Service\Admission\AdmissionRechercheService; use Admission\Service\Admission\AdmissionRechercheServiceFactory; use Admission\Service\Admission\AdmissionService; use Admission\Service\Admission\AdmissionServiceFactory; use Admission\Service\ConventionFormationDoctorale\ConventionFormationDoctoraleService; Loading @@ -68,8 +72,10 @@ use Admission\Service\Url\UrlService; use Admission\Service\Url\UrlServiceFactory; use Admission\Service\Verification\VerificationService; use Admission\Service\Verification\VerificationServiceFactory; use Application\Navigation\ApplicationNavigationFactory; use Doctrine\ORM\Mapping\Driver\XmlDriver; use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; use UnicaenAuth\Guard\PrivilegeController; use UnicaenAuth\Provider\Rule\PrivilegeRuleProvider; Loading Loading @@ -201,19 +207,32 @@ return array( ], 'assertion' => AdmissionAssertion::class, ], [ 'controller' => AdmissionRechercheController::class, 'action' => [ 'index', 'filters', ], 'privileges' => [ AdmissionPrivileges::ADMISSION_AFFICHER_SON_DOSSIER_ADMISSION, AdmissionPrivileges::ADMISSION_LISTER_MES_DOSSIERS_ADMISSION, AdmissionPrivileges::ADMISSION_INITIALISER_ADMISSION ], 'assertion' => AdmissionAssertion::class, ], ] ], ], 'router' => [ 'routes' => [ 'admission' => [ 'type' => Segment::class, 'type' => Literal::class, 'may_terminate' => true, 'options' => [ 'route' => '/admission', 'defaults' => [ 'action' => 'index', 'controller' => AdmissionController::class, 'controller' => AdmissionRechercheController::class, ], ], 'child_routes' => [ Loading @@ -222,6 +241,10 @@ return array( 'options' => [ 'route' => '/:action/:individu', 'constraints' => [ 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'admission' => '[0-9]*' ], 'defaults' => [ /** * @see AdmissionController::etudiantAction() * @see AdmissionController::inscriptionAction() Loading @@ -230,8 +253,7 @@ return array( * @see AdmissionController::enregistrerAction() * @see AdmissionController::supprimerAction() */ 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'admission' => '[0-9]*' 'controller' => AdmissionController::class, ], ], ], Loading Loading @@ -297,14 +319,88 @@ return array( ], ], ], 'recherche' => [ 'type' => 'Literal', 'options' => [ 'route' => '/recherche', 'defaults' => [ 'controller' => AdmissionRechercheController::class, 'action' => 'index', ], ], 'may_terminate' => true, 'child_routes' => [ 'filters' => [ 'type' => 'Literal', 'options' => [ 'route' => '/filters', 'defaults' => [ 'action' => 'filters', 'controller' => AdmissionRechercheController::class, ], ], ], ], ], ], ], ], ], 'navigation' => [ 'default' => [ // DEPTH = 0 'home' => [ 'pages' => [ /** * Page pour le Candidat. */ // DEPTH = 1 ApplicationNavigationFactory::MON_ADMISSION_PAGE_ID => [ 'order' => -200, 'label' => 'Admission', 'route' => 'admission', 'resource' => PrivilegeController::getResourceId(AdmissionRechercheController::class, 'index'), 'pages' => [ ], ], /** * Page pour Dir, Codir. */ ApplicationNavigationFactory::MES_ADMISSIONS_PAGE_ID => [ 'order' => -200, 'label' => 'Mes admissions', 'route' => 'admission', 'resource' => PrivilegeController::getResourceId(AdmissionRechercheController::class, 'index'), 'pages' => [ ], ], /** * Page pour Gest/Resp ED, Gest/Resp UR, Maison du Doctorat. */ // DEPTH = 1 ApplicationNavigationFactory::NOS_THESES_PAGE_ID => [ 'pages' => [ // DEPTH = 2 'ADMISSIONS' => [ 'label' => '(Rapports activité Structure)', 'route' => 'admission', 'resource' => PrivilegeController::getResourceId(AdmissionRechercheController::class, 'index'), 'privilege' => [ AdmissionPrivileges::ADMISSION_LISTER_MES_DOSSIERS_ADMISSION, ], ], ], ], ], ], ], ], 'controllers' => [ 'factories' => [ AdmissionController::class => AdmissionControllerFactory::class, AdmissionRechercheController::class => AdmissionRechercheControllerFactory::class ], ], Loading Loading @@ -341,6 +437,7 @@ return array( TypeValidationService::class => TypeValidationServiceFactory::class, DocumentService::class => DocumentServiceFactory::class, VerificationService::class => VerificationServiceFactory::class, AdmissionRechercheService::class => AdmissionRechercheServiceFactory::class, AdmissionEventListener::class => AdmissionEventListenerFactory::class, Loading module/Admission/src/Admission/Assertion/AdmissionAssertion.php +4 −4 Changes for module/Admission/src/Admission/Assertion/AdmissionAssertion.php: 4 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -144,8 +144,6 @@ class AdmissionAssertion extends AbstractAssertion implements UserContextService switch ($privilege) { case AdmissionPrivileges::ADMISSION_MODIFIER_TOUS_DOSSIERS_ADMISSION: case AdmissionPrivileges::ADMISSION_MODIFIER_SON_DOSSIER_ADMISSION: case AdmissionPrivileges::ADMISSION_SUPPRIMER_TOUS_DOSSIERS_ADMISSION: case AdmissionPrivileges::ADMISSION_SUPPRIMER_SON_DOSSIER_ADMISSION: case AdmissionPrivileges::ADMISSION_TELEVERSER_TOUT_DOCUMENT: case AdmissionPrivileges::ADMISSION_TELEVERSER_SON_DOCUMENT: case AdmissionPrivileges::ADMISSION_SUPPRIMER_TOUT_DOCUMENT: Loading Loading @@ -224,6 +222,7 @@ class AdmissionAssertion extends AbstractAssertion implements UserContextService $roleUniteRecherche = $this->userContextService->getSelectedRoleUniteRecherche(); $roleDirecteurThese = $this->userContextService->getSelectedRoleDirecteurThese(); $roleCoDirecteurThese = $this->userContextService->getSelectedRoleCodirecteurThese(); $roleMaisonDoctorat = $this->userContextService->getSelectedRoleBDD(); if ($role->getRoleId() === Role::ROLE_ID_USER || $role->getRoleId() === Role::ROLE_ID_ADMISSION_DIRECTEUR_THESE || Loading @@ -233,7 +232,8 @@ class AdmissionAssertion extends AbstractAssertion implements UserContextService $roleEcoleDoctorale || $roleUniteRecherche || $roleDirecteurThese || $roleCoDirecteurThese) { $roleCoDirecteurThese || $roleMaisonDoctorat) { return; }else{ throw new FailedAssertionException("Vous ne pouvez pas accéder au module admission"); Loading Loading @@ -321,7 +321,7 @@ class AdmissionAssertion extends AbstractAssertion implements UserContextService } else { throw new FailedAssertionException($message); } }else if($role->getCode() !== Role::CODE_ADMIN_TECH){ }else if($role->getCode() !== Role::CODE_ADMIN_TECH && $role->getCode() !== Role::CODE_BDD){ throw new FailedAssertionException("Vous ne pouvez pas accéder au module admission"); } } Loading module/Admission/src/Admission/Controller/AdmissionController.php +2 −0 Changes for module/Admission/src/Admission/Controller/AdmissionController.php: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -81,6 +81,8 @@ class AdmissionController extends AdmissionAbstractController { public function indexAction(): ViewModel|Response { return $this->redirect()->toRoute('admission/recherche', [], [], true); $request = $this->getRequest(); if($request->isPost()){ $individu = $request->getPost('individuId'); Loading Loading
config/autoload/global.php +0 −2 Changes for config/autoload/global.php: 0 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -910,8 +910,6 @@ const CONFIG_SYNCHROS = [ 'source_code_column' => 'source_code', 'id_strategy' => 'SEQUENCE', 'id_sequence' => null, 'undelete_enabled_column' => 'synchro_undelete_enabled', // pour ne pas que les substitués soient déhistorisés 'update_on_deleted_enabled_column' => 'synchro_update_on_deleted_enabled', // pour activer la màj des substitués (historisés) ], ], ////////////////////////////////////////////// INDIVIDU ////////////////////////////////////////////// Loading
module/Admission/Sql/admission.sql +25 −2 Changes for module/Admission/Sql/admission.sql: 25 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -1095,8 +1095,31 @@ from data 'GEST_ED', 'RESP_UR', 'RESP_ED', 'D', 'K' 'D', -- Directeur 'K', -- Co-directeur 'BDD' -- Maison du Doctorat ) 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); -- ajout des privilèges communs au profil GEST_ED, RESP_UR, RESP_ED, D, K INSERT INTO PROFIL_PRIVILEGE (PRIVILEGE_ID, PROFIL_ID) with data(categ, priv) as (select 'admission', 'admission-afficher-son-dossier-admission' union select 'admission', 'admission-lister-mes-dossiers-admission' union select 'admission', 'admission-telecharger-son-document' union select 'admission', 'admission-acceder-commentaires' union select 'admission', 'admission-convention-formation-generer' union select 'admission', 'admission-afficher-son-dossier-admission-dans-liste') select p.id as PRIVILEGE_ID, profil.id as PROFIL_ID from data join PROFIL on profil.ROLE_ID in ( 'BDD' -- Maison du Doctorat ) join CATEGORIE_PRIVILEGE cp on cp.CODE = data.categ join PRIVILEGE p on p.CATEGORIE_ID = cp.id and p.code = data.priv Loading
module/Admission/config/module.config.php +101 −4 Changes for module/Admission/config/module.config.php: 101 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -11,6 +11,8 @@ use Admission\Config\ModuleConfig; use Admission\Config\ModuleConfigFactory; use Admission\Controller\AdmissionController; use Admission\Controller\AdmissionControllerFactory; use Admission\Controller\AdmissionRechercheController; use Admission\Controller\AdmissionRechercheControllerFactory; use Admission\Controller\Validation\AdmissionValidationController; use Admission\Controller\Validation\AdmissionValidationControllerFactory; use Admission\Event\AdmissionEventListener; Loading Loading @@ -48,6 +50,8 @@ use Admission\Hydrator\Validation\AdmissionValidationHydratorFactory; use Admission\Hydrator\Verification\VerificationHydrator; use Admission\Hydrator\Verification\VerificationHydratorFactory; use Admission\Provider\Privilege\AdmissionPrivileges; use Admission\Service\Admission\AdmissionRechercheService; use Admission\Service\Admission\AdmissionRechercheServiceFactory; use Admission\Service\Admission\AdmissionService; use Admission\Service\Admission\AdmissionServiceFactory; use Admission\Service\ConventionFormationDoctorale\ConventionFormationDoctoraleService; Loading @@ -68,8 +72,10 @@ use Admission\Service\Url\UrlService; use Admission\Service\Url\UrlServiceFactory; use Admission\Service\Verification\VerificationService; use Admission\Service\Verification\VerificationServiceFactory; use Application\Navigation\ApplicationNavigationFactory; use Doctrine\ORM\Mapping\Driver\XmlDriver; use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; use Laminas\Router\Http\Literal; use Laminas\Router\Http\Segment; use UnicaenAuth\Guard\PrivilegeController; use UnicaenAuth\Provider\Rule\PrivilegeRuleProvider; Loading Loading @@ -201,19 +207,32 @@ return array( ], 'assertion' => AdmissionAssertion::class, ], [ 'controller' => AdmissionRechercheController::class, 'action' => [ 'index', 'filters', ], 'privileges' => [ AdmissionPrivileges::ADMISSION_AFFICHER_SON_DOSSIER_ADMISSION, AdmissionPrivileges::ADMISSION_LISTER_MES_DOSSIERS_ADMISSION, AdmissionPrivileges::ADMISSION_INITIALISER_ADMISSION ], 'assertion' => AdmissionAssertion::class, ], ] ], ], 'router' => [ 'routes' => [ 'admission' => [ 'type' => Segment::class, 'type' => Literal::class, 'may_terminate' => true, 'options' => [ 'route' => '/admission', 'defaults' => [ 'action' => 'index', 'controller' => AdmissionController::class, 'controller' => AdmissionRechercheController::class, ], ], 'child_routes' => [ Loading @@ -222,6 +241,10 @@ return array( 'options' => [ 'route' => '/:action/:individu', 'constraints' => [ 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'admission' => '[0-9]*' ], 'defaults' => [ /** * @see AdmissionController::etudiantAction() * @see AdmissionController::inscriptionAction() Loading @@ -230,8 +253,7 @@ return array( * @see AdmissionController::enregistrerAction() * @see AdmissionController::supprimerAction() */ 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'admission' => '[0-9]*' 'controller' => AdmissionController::class, ], ], ], Loading Loading @@ -297,14 +319,88 @@ return array( ], ], ], 'recherche' => [ 'type' => 'Literal', 'options' => [ 'route' => '/recherche', 'defaults' => [ 'controller' => AdmissionRechercheController::class, 'action' => 'index', ], ], 'may_terminate' => true, 'child_routes' => [ 'filters' => [ 'type' => 'Literal', 'options' => [ 'route' => '/filters', 'defaults' => [ 'action' => 'filters', 'controller' => AdmissionRechercheController::class, ], ], ], ], ], ], ], ], ], 'navigation' => [ 'default' => [ // DEPTH = 0 'home' => [ 'pages' => [ /** * Page pour le Candidat. */ // DEPTH = 1 ApplicationNavigationFactory::MON_ADMISSION_PAGE_ID => [ 'order' => -200, 'label' => 'Admission', 'route' => 'admission', 'resource' => PrivilegeController::getResourceId(AdmissionRechercheController::class, 'index'), 'pages' => [ ], ], /** * Page pour Dir, Codir. */ ApplicationNavigationFactory::MES_ADMISSIONS_PAGE_ID => [ 'order' => -200, 'label' => 'Mes admissions', 'route' => 'admission', 'resource' => PrivilegeController::getResourceId(AdmissionRechercheController::class, 'index'), 'pages' => [ ], ], /** * Page pour Gest/Resp ED, Gest/Resp UR, Maison du Doctorat. */ // DEPTH = 1 ApplicationNavigationFactory::NOS_THESES_PAGE_ID => [ 'pages' => [ // DEPTH = 2 'ADMISSIONS' => [ 'label' => '(Rapports activité Structure)', 'route' => 'admission', 'resource' => PrivilegeController::getResourceId(AdmissionRechercheController::class, 'index'), 'privilege' => [ AdmissionPrivileges::ADMISSION_LISTER_MES_DOSSIERS_ADMISSION, ], ], ], ], ], ], ], ], 'controllers' => [ 'factories' => [ AdmissionController::class => AdmissionControllerFactory::class, AdmissionRechercheController::class => AdmissionRechercheControllerFactory::class ], ], Loading Loading @@ -341,6 +437,7 @@ return array( TypeValidationService::class => TypeValidationServiceFactory::class, DocumentService::class => DocumentServiceFactory::class, VerificationService::class => VerificationServiceFactory::class, AdmissionRechercheService::class => AdmissionRechercheServiceFactory::class, AdmissionEventListener::class => AdmissionEventListenerFactory::class, Loading
module/Admission/src/Admission/Assertion/AdmissionAssertion.php +4 −4 Changes for module/Admission/src/Admission/Assertion/AdmissionAssertion.php: 4 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -144,8 +144,6 @@ class AdmissionAssertion extends AbstractAssertion implements UserContextService switch ($privilege) { case AdmissionPrivileges::ADMISSION_MODIFIER_TOUS_DOSSIERS_ADMISSION: case AdmissionPrivileges::ADMISSION_MODIFIER_SON_DOSSIER_ADMISSION: case AdmissionPrivileges::ADMISSION_SUPPRIMER_TOUS_DOSSIERS_ADMISSION: case AdmissionPrivileges::ADMISSION_SUPPRIMER_SON_DOSSIER_ADMISSION: case AdmissionPrivileges::ADMISSION_TELEVERSER_TOUT_DOCUMENT: case AdmissionPrivileges::ADMISSION_TELEVERSER_SON_DOCUMENT: case AdmissionPrivileges::ADMISSION_SUPPRIMER_TOUT_DOCUMENT: Loading Loading @@ -224,6 +222,7 @@ class AdmissionAssertion extends AbstractAssertion implements UserContextService $roleUniteRecherche = $this->userContextService->getSelectedRoleUniteRecherche(); $roleDirecteurThese = $this->userContextService->getSelectedRoleDirecteurThese(); $roleCoDirecteurThese = $this->userContextService->getSelectedRoleCodirecteurThese(); $roleMaisonDoctorat = $this->userContextService->getSelectedRoleBDD(); if ($role->getRoleId() === Role::ROLE_ID_USER || $role->getRoleId() === Role::ROLE_ID_ADMISSION_DIRECTEUR_THESE || Loading @@ -233,7 +232,8 @@ class AdmissionAssertion extends AbstractAssertion implements UserContextService $roleEcoleDoctorale || $roleUniteRecherche || $roleDirecteurThese || $roleCoDirecteurThese) { $roleCoDirecteurThese || $roleMaisonDoctorat) { return; }else{ throw new FailedAssertionException("Vous ne pouvez pas accéder au module admission"); Loading Loading @@ -321,7 +321,7 @@ class AdmissionAssertion extends AbstractAssertion implements UserContextService } else { throw new FailedAssertionException($message); } }else if($role->getCode() !== Role::CODE_ADMIN_TECH){ }else if($role->getCode() !== Role::CODE_ADMIN_TECH && $role->getCode() !== Role::CODE_BDD){ throw new FailedAssertionException("Vous ne pouvez pas accéder au module admission"); } } Loading
module/Admission/src/Admission/Controller/AdmissionController.php +2 −0 Changes for module/Admission/src/Admission/Controller/AdmissionController.php: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -81,6 +81,8 @@ class AdmissionController extends AdmissionAbstractController { public function indexAction(): ViewModel|Response { return $this->redirect()->toRoute('admission/recherche', [], [], true); $request = $this->getRequest(); if($request->isPost()){ $individu = $request->getPost('individuId'); Loading