Loading composer.lock +20 −20 Changes for composer.lock: 20 added lines, 20 removed lines. Original line number Diff line number Diff line Loading @@ -422,16 +422,16 @@ }, { "name": "doctrine/common", "version": "3.4.2", "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", "reference": "609c3a7b6af49a7b4b13945ca2fdf4af801946af" "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/common/zipball/609c3a7b6af49a7b4b13945ca2fdf4af801946af", "reference": "609c3a7b6af49a7b4b13945ca2fdf4af801946af", "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", "shasum": "" }, "require": { Loading Loading @@ -493,7 +493,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", "source": "https://github.com/doctrine/common/tree/3.4.2" "source": "https://github.com/doctrine/common/tree/3.4.3" }, "funding": [ { Loading @@ -509,7 +509,7 @@ "type": "tidelift" } ], "time": "2022-09-28T14:20:50+00:00" "time": "2022-10-09T11:47:59+00:00" }, { "name": "doctrine/dbal", Loading Loading @@ -1322,16 +1322,16 @@ }, { "name": "doctrine/orm", "version": "2.13.2", "version": "2.13.3", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", "reference": "a8b02fd70fa777ca8278b9604fdef75c15c6a12f" "reference": "e750360bd52b080c4cbaaee1b48b80f7dc873b36" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/orm/zipball/a8b02fd70fa777ca8278b9604fdef75c15c6a12f", "reference": "a8b02fd70fa777ca8278b9604fdef75c15c6a12f", "url": "https://api.github.com/repos/doctrine/orm/zipball/e750360bd52b080c4cbaaee1b48b80f7dc873b36", "reference": "e750360bd52b080c4cbaaee1b48b80f7dc873b36", "shasum": "" }, "require": { Loading Loading @@ -1416,9 +1416,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", "source": "https://github.com/doctrine/orm/tree/2.13.2" "source": "https://github.com/doctrine/orm/tree/2.13.3" }, "time": "2022-09-22T13:36:43+00:00" "time": "2022-10-07T06:37:17+00:00" }, { "name": "doctrine/persistence", Loading Loading @@ -2346,32 +2346,32 @@ }, { "name": "laminas/laminas-escaper", "version": "2.10.0", "version": "2.11.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-escaper.git", "reference": "58af67282db37d24e584a837a94ee55b9c7552be" "reference": "ab1f99c18d58c5847d38f14bf20eb570c70904a7" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/58af67282db37d24e584a837a94ee55b9c7552be", "reference": "58af67282db37d24e584a837a94ee55b9c7552be", "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/ab1f99c18d58c5847d38f14bf20eb570c70904a7", "reference": "ab1f99c18d58c5847d38f14bf20eb570c70904a7", "shasum": "" }, "require": { "ext-ctype": "*", "ext-mbstring": "*", "php": "^7.4 || ~8.0.0 || ~8.1.0" "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0" }, "conflict": { "zendframework/zend-escaper": "*" }, "require-dev": { "infection/infection": "^0.26.6", "laminas/laminas-coding-standard": "~2.3.0", "laminas/laminas-coding-standard": "~2.4.0", "maglnet/composer-require-checker": "^3.8.0", "phpunit/phpunit": "^9.5.18", "psalm/plugin-phpunit": "^0.16.1", "psalm/plugin-phpunit": "^0.17.0", "vimeo/psalm": "^4.22.0" }, "type": "library", Loading Loading @@ -2404,7 +2404,7 @@ "type": "community_bridge" } ], "time": "2022-03-08T20:15:36+00:00" "time": "2022-10-10T07:59:17+00:00" }, { "name": "laminas/laminas-eventmanager", Loading module/Enseignement/config/module.config.php +49 −47 Changes for module/Enseignement/config/module.config.php: 49 added lines, 47 removed lines. Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ use Application\Provider\Privilege\Privileges; use Enseignement\Controller\EnseignementController; use Enseignement\Controller\VolumeHoraireController; use Laminas\ServiceManager\Factory\InvokableFactory; use UnicaenAuth\Assertion\AssertionFactory; return [ Loading Loading @@ -183,7 +184,7 @@ return [ ], 'workflow-etape-code' => WfEtape::CODE_SERVICE_VALIDATION, 'withtarget' => true, // 'visible' => Assertion\ServiceAssertion::class, 'visible' => Assertion\EnseignementAssertion::class, 'order' => 8, ], 'validation-enseignement-realise' => [ Loading @@ -195,7 +196,7 @@ return [ ], 'workflow-etape-code' => WfEtape::CODE_SERVICE_VALIDATION_REALISE, 'withtarget' => true, // 'visible' => Assertion\ServiceAssertion::class, 'visible' => Assertion\EnseignementAssertion::class, 'order' => 14, ], ], Loading @@ -203,46 +204,46 @@ return [ ], 'rules' => [ // [ // 'privileges' => [ // Privileges::ENSEIGNEMENT_PREVU_VISUALISATION, // Privileges::ENSEIGNEMENT_PREVU_EDITION, // Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, // Privileges::ENSEIGNEMENT_REALISE_EDITION, // ], // 'resources' => ['Service', 'Intervenant'], // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => [ // Privileges::ENSEIGNEMENT_PREVU_VALIDATION, // Privileges::ENSEIGNEMENT_REALISE_VALIDATION, // Privileges::ENSEIGNEMENT_PREVU_AUTOVALIDATION, // Privileges::ENSEIGNEMENT_REALISE_AUTOVALIDATION, // ], // 'resources' => ['Service', 'VolumeHoraire', 'Validation'], // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => Privileges::ENSEIGNEMENT_DEVALIDATION, // 'resources' => 'Validation', // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => [ // Privileges::ENSEIGNEMENT_EXTERIEUR, // ], // 'resources' => ['Intervenant', 'Service'], // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => [ // Privileges::MOTIF_NON_PAIEMENT_VISUALISATION, // Privileges::MOTIF_NON_PAIEMENT_EDITION, // ], // 'resources' => 'Intervenant', // 'assertion' => Assertion\ServiceAssertion::class, // ], [ 'privileges' => [ Privileges::ENSEIGNEMENT_PREVU_VISUALISATION, Privileges::ENSEIGNEMENT_PREVU_EDITION, Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, Privileges::ENSEIGNEMENT_REALISE_EDITION, ], 'resources' => ['Service', 'Intervenant'], 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'privileges' => [ Privileges::ENSEIGNEMENT_PREVU_VALIDATION, Privileges::ENSEIGNEMENT_REALISE_VALIDATION, Privileges::ENSEIGNEMENT_PREVU_AUTOVALIDATION, Privileges::ENSEIGNEMENT_REALISE_AUTOVALIDATION, ], 'resources' => ['Service', 'VolumeHoraire', 'Validation'], 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'privileges' => Privileges::ENSEIGNEMENT_DEVALIDATION, 'resources' => 'Validation', 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'privileges' => [ Privileges::ENSEIGNEMENT_EXTERIEUR, ], 'resources' => ['Intervenant', 'Service'], 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'privileges' => [ Privileges::MOTIF_NON_PAIEMENT_VISUALISATION, Privileges::MOTIF_NON_PAIEMENT_EDITION, ], 'resources' => 'Intervenant', 'assertion' => Assertion\EnseignementAssertion::class, ], ], 'guards' => [ Loading @@ -252,7 +253,7 @@ return [ 'privileges' => [ Privileges::ENSEIGNEMENT_PREVU_VISUALISATION, ], //'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'controller' => EnseignementController::class, Loading @@ -260,7 +261,7 @@ return [ 'privileges' => [ Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, ], //'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'controller' => EnseignementController::class, Loading @@ -271,7 +272,7 @@ return [ Privileges::REFERENTIEL_PREVU_EDITION, Privileges::REFERENTIEL_REALISE_EDITION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\EnseignementAssertion::class, ], [ Loading @@ -289,7 +290,7 @@ return [ Privileges::ENSEIGNEMENT_PREVU_EDITION, Privileges::ENSEIGNEMENT_REALISE_EDITION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'controller' => EnseignementController::class, Loading @@ -298,7 +299,7 @@ return [ Privileges::ENSEIGNEMENT_PREVU_VISUALISATION, Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'controller' => EnseignementController::class, Loading Loading @@ -330,6 +331,7 @@ return [ Processus\ValidationEnseignementProcessus::class => InvokableFactory::class, Service\ServiceService::class => InvokableFactory::class, Service\VolumeHoraireService::class => InvokableFactory::class, Assertion\EnseignementAssertion::class => AssertionFactory::class, ], Loading module/Referentiel/src/Assertion/ServiceAssertion.php→module/Enseignement/src/Assertion/EnseignementAssertion.php +6 −105 Changes for module/Enseignement/src/Assertion/EnseignementAssertion.php: 6 added lines, 105 removed lines. Original line number Diff line number Diff line <?php namespace Referentiel\Assertion; namespace Enseignement\Assertion; use Application\Acl\Role; use Application\Entity\Db\Intervenant; use Enseignement\Entity\Db\Service; use Referentiel\Entity\Db\ServiceReferentiel; use Application\Entity\Db\Structure; use Service\Controller\ServiceController; use Service\Entity\Db\TypeVolumeHoraire; use Application\Entity\Db\Validation; use Enseignement\Entity\Db\VolumeHoraire; Loading @@ -24,11 +25,11 @@ use Laminas\Permissions\Acl\Resource\ResourceInterface; /** * Description of ServiceAssertion * Description of EnseignementAssertion * * @author LECLUSE Laurent <laurent.lecluse at unicaen.fr> */ class ServiceAssertion extends AbstractAssertion class EnseignementAssertion extends AbstractAssertion { use WorkflowServiceAwareTrait; use ContextServiceAwareTrait; Loading Loading @@ -75,14 +76,8 @@ class ServiceAssertion extends AbstractAssertion switch ($page['route']) { case 'intervenant/validation/service/prevu': return $this->assertEntity($intervenant, Privileges::ENSEIGNEMENT_PREVU_VISUALISATION); case 'intervenant/validation/referentiel/prevu': return $this->assertEntity($intervenant, Privileges::REFERENTIEL_PREVU_VISUALISATION); break; case 'intervenant/validation/service/realise': return $this->assertEntity($intervenant, Privileges::ENSEIGNEMENT_REALISE_VISUALISATION); case 'intervenant/validation/referentiel/realise': return $this->assertEntity($intervenant, Privileges::REFERENTIEL_REALISE_VISUALISATION); break; case 'intervenant/services-prevus': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_PREVU); break; Loading Loading @@ -136,26 +131,6 @@ class ServiceAssertion extends AbstractAssertion return $this->assertVolumeHoraireValidation($role, $entity); } break; case $entity instanceof ServiceReferentiel: switch ($privilege) { case Privileges::REFERENTIEL_PREVU_VISUALISATION: case Privileges::REFERENTIEL_REALISE_VISUALISATION: return $this->assertServiceReferentielVisualisation($role, $entity); case Privileges::REFERENTIEL_PREVU_EDITION: case Privileges::REFERENTIEL_REALISE_EDITION: return $this->assertServiceReferentielEdition($role, $entity); case Privileges::REFERENTIEL_PREVU_VALIDATION: case Privileges::REFERENTIEL_REALISE_VALIDATION: return $this->assertServiceReferentielValidation($role, $entity); } break; case $entity instanceof VolumeHoraireReferentiel: switch ($privilege) { case Privileges::REFERENTIEL_PREVU_VALIDATION: case Privileges::REFERENTIEL_REALISE_VALIDATION: return $this->assertVolumeHoraireReferentielValidation($role, $entity); } break; case $entity instanceof Intervenant: switch ($privilege) { case Privileges::ENSEIGNEMENT_PREVU_VISUALISATION: Loading @@ -170,22 +145,6 @@ class ServiceAssertion extends AbstractAssertion case Privileges::ENSEIGNEMENT_REALISE_EDITION: return $this->assertIntervenantService($role, $entity, TypeVolumeHoraire::CODE_REALISE, true); case Privileges::REFERENTIEL_PREVU_VISUALISATION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_PREVU, false); case Privileges::REFERENTIEL_PREVU_EDITION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_PREVU, true); case Privileges::REFERENTIEL_REALISE_VISUALISATION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_REALISE, false); case Privileges::REFERENTIEL_REALISE_EDITION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_REALISE, true); case Privileges::MOTIF_NON_PAIEMENT_VISUALISATION: case Privileges::MOTIF_NON_PAIEMENT_EDITION: return $this->assertMotifNonPaiement($role, $entity); case Privileges::ENSEIGNEMENT_EXTERIEUR: return $this->assertIntervenantServiceExterieur($role, $entity); } Loading @@ -194,12 +153,7 @@ class ServiceAssertion extends AbstractAssertion switch ($privilege) { case Privileges::ENSEIGNEMENT_PREVU_VALIDATION: case Privileges::ENSEIGNEMENT_REALISE_VALIDATION: case Privileges::REFERENTIEL_PREVU_VALIDATION: case Privileges::REFERENTIEL_REALISE_VALIDATION: return $this->assertValidationValidation($role, $entity); case Privileges::ENSEIGNEMENT_DEVALIDATION: case Privileges::REFERENTIEL_DEVALIDATION: return $this->assertValidationDevalidation($role, $entity); } break; } Loading Loading @@ -240,10 +194,10 @@ class ServiceAssertion extends AbstractAssertion return $this->assertImportAgenda($role); break; case 'Application\Controller\Intervenant.servicesPrevus': case ServiceController::class . '.intervenant-saisie-prevu': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_PREVU); break; case 'Application\Controller\Intervenant.servicesRealises': case ServiceController::class . '.intervenant-saisie-prevu': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_REALISE); break; } Loading Loading @@ -383,37 +337,6 @@ class ServiceAssertion extends AbstractAssertion protected function assertServiceReferentielEdition(Role $role, ServiceReferentiel $serviceReferentiel) { $asserts = []; if (!$role->hasPrivilege(Privileges::REFERENTIEL_SAISIE_TOUTES_COMPOSANTES)) { // Si on n'a pas le privilège pour pouvoir du référentiel dans toutes les composantes sans restriction if ($structure = $role->getStructure()) { $structureAffectation = $serviceReferentiel->getIntervenant() ? $serviceReferentiel->getIntervenant()->getStructure() : null; $structureEnseignement = $serviceReferentiel->getStructure(); if ($structureAffectation && $structureEnseignement) { // cas d'un intervenant d'une autre structure prenant un enseignement dans une autre structure $asserts[] = $structure == $structureAffectation || $structure == $structureEnseignement; // le service doit avoir un lien avec la structure } elseif ($structureAffectation && !$structureEnseignement) { // cas d'un intervenant prenant des enseignements à l'extérieur $asserts[] = $structure == $structureAffectation; } elseif (!$structureAffectation && $structureEnseignement) { // cas d'un intervenant extérieur prenant des enseignements de la composante $asserts[] = $structure == $structureEnseignement; } } } $asserts[] = $this->assertIntervenant($role, $serviceReferentiel->getIntervenant()); $asserts[] = $this->assertCampagneSaisie($role, $serviceReferentiel->getTypeVolumeHoraire()); $asserts[] = $this->assertCloture($role, $serviceReferentiel->getIntervenant()); return $this->asserts($asserts); } protected function assertHasServices(Intervenant $intervenant, Structure $structure, string $etape, Role $role) { $services = $intervenant->getService(); Loading Loading @@ -639,28 +562,6 @@ class ServiceAssertion extends AbstractAssertion protected function assertIntervenantReferentiel( Role $role, Intervenant $intervenant, string $typeVolumeHoraireCode, bool $edition = false ) { if (!$this->assertIntervenant($role, $intervenant)) return false; // si on n'est pas le bon intervenant!! $statut = $intervenant->getStatut(); if (TypeVolumeHoraire::CODE_PREVU == $typeVolumeHoraireCode) { if (!$statut->getReferentielPrevu()) return false; } if (TypeVolumeHoraire::CODE_REALISE == $typeVolumeHoraireCode) { if (!$statut->getReferentielRealise()) return false; } return true; } protected function assertStructure(Role $role, ?Structure $structure = null) { if ($structure) { Loading module/Referentiel/config/module.config.php +32 −34 Changes for module/Referentiel/config/module.config.php: 32 added lines, 34 removed lines. Original line number Diff line number Diff line Loading @@ -182,7 +182,7 @@ return [ ], 'workflow-etape-code' => WfEtape::CODE_REFERENTIEL_VALIDATION, 'withtarget' => true, 'visible' => Assertion\ServiceAssertion::class, 'visible' => Assertion\ReferentielAssertion::class, 'order' => 9, ], 'validation-referentiel-realise' => [ Loading @@ -194,7 +194,7 @@ return [ ], 'workflow-etape-code' => WfEtape::CODE_REFERENTIEL_VALIDATION_REALISE, 'withtarget' => true, 'visible' => Assertion\ServiceAssertion::class, 'visible' => Assertion\ReferentielAssertion::class, 'order' => 15, ], ], Loading @@ -216,31 +216,31 @@ return [ ], 'rules' => [ // [ // 'privileges' => [ // Privileges::REFERENTIEL_PREVU_VISUALISATION, // Privileges::REFERENTIEL_PREVU_EDITION, // Privileges::REFERENTIEL_REALISE_VISUALISATION, // Privileges::REFERENTIEL_REALISE_EDITION, // ], // 'resources' => ['ServiceReferentiel', 'Intervenant'], // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => [ // Privileges::REFERENTIEL_PREVU_VALIDATION, // Privileges::REFERENTIEL_REALISE_VALIDATION, // Privileges::REFERENTIEL_PREVU_AUTOVALIDATION, // Privileges::REFERENTIEL_REALISE_AUTOVALIDATION, // ], // 'resources' => ['ServiceReferentiel', 'VolumeHoraireReferentiel', 'Validation'], // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => Privileges::REFERENTIEL_DEVALIDATION, // 'resources' => 'Validation', // 'assertion' => Assertion\ServiceAssertion::class, // ], [ 'privileges' => [ Privileges::REFERENTIEL_PREVU_VISUALISATION, Privileges::REFERENTIEL_PREVU_EDITION, Privileges::REFERENTIEL_REALISE_VISUALISATION, Privileges::REFERENTIEL_REALISE_EDITION, ], 'resources' => ['ServiceReferentiel', 'Intervenant'], 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'privileges' => [ Privileges::REFERENTIEL_PREVU_VALIDATION, Privileges::REFERENTIEL_REALISE_VALIDATION, Privileges::REFERENTIEL_PREVU_AUTOVALIDATION, Privileges::REFERENTIEL_REALISE_AUTOVALIDATION, ], 'resources' => ['ServiceReferentiel', 'VolumeHoraireReferentiel', 'Validation'], 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'privileges' => Privileges::REFERENTIEL_DEVALIDATION, 'resources' => 'Validation', 'assertion' => Assertion\ReferentielAssertion::class, ], ], 'guards' => [ Loading @@ -254,15 +254,13 @@ return [ 'action' => ['saisie', 'delete'], 'privileges' => [Privileges::REFERENTIEL_ADMIN_EDITION], ], [ 'controller' => ServiceReferentielController::class, 'action' => ['prevu'], 'privileges' => [ Privileges::REFERENTIEL_PREVU_VISUALISATION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'controller' => ServiceReferentielController::class, Loading @@ -270,7 +268,7 @@ return [ 'privileges' => [ Privileges::REFERENTIEL_REALISE_VISUALISATION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'controller' => ServiceReferentielController::class, Loading @@ -279,7 +277,7 @@ return [ Privileges::REFERENTIEL_PREVU_EDITION, Privileges::REFERENTIEL_REALISE_EDITION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'controller' => ServiceReferentielController::class, Loading @@ -288,7 +286,7 @@ return [ Privileges::REFERENTIEL_PREVU_VISUALISATION, Privileges::REFERENTIEL_REALISE_VISUALISATION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'controller' => ServiceReferentielController::class, Loading Loading @@ -318,7 +316,7 @@ return [ Service\VolumeHoraireReferentielService::class => InvokableFactory::class, Processus\ServiceReferentielProcessus::class => InvokableFactory::class, Processus\ValidationReferentielProcessus::class => InvokableFactory::class, Assertion\ServiceAssertion::class => AssertionFactory::class, Assertion\ReferentielAssertion::class => AssertionFactory::class, ], 'forms' => [ Loading module/Referentiel/src/Assertion/ReferentielAssertion.php 0 → 100755 +489 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
composer.lock +20 −20 Changes for composer.lock: 20 added lines, 20 removed lines. Original line number Diff line number Diff line Loading @@ -422,16 +422,16 @@ }, { "name": "doctrine/common", "version": "3.4.2", "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", "reference": "609c3a7b6af49a7b4b13945ca2fdf4af801946af" "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/common/zipball/609c3a7b6af49a7b4b13945ca2fdf4af801946af", "reference": "609c3a7b6af49a7b4b13945ca2fdf4af801946af", "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", "shasum": "" }, "require": { Loading Loading @@ -493,7 +493,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", "source": "https://github.com/doctrine/common/tree/3.4.2" "source": "https://github.com/doctrine/common/tree/3.4.3" }, "funding": [ { Loading @@ -509,7 +509,7 @@ "type": "tidelift" } ], "time": "2022-09-28T14:20:50+00:00" "time": "2022-10-09T11:47:59+00:00" }, { "name": "doctrine/dbal", Loading Loading @@ -1322,16 +1322,16 @@ }, { "name": "doctrine/orm", "version": "2.13.2", "version": "2.13.3", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", "reference": "a8b02fd70fa777ca8278b9604fdef75c15c6a12f" "reference": "e750360bd52b080c4cbaaee1b48b80f7dc873b36" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/doctrine/orm/zipball/a8b02fd70fa777ca8278b9604fdef75c15c6a12f", "reference": "a8b02fd70fa777ca8278b9604fdef75c15c6a12f", "url": "https://api.github.com/repos/doctrine/orm/zipball/e750360bd52b080c4cbaaee1b48b80f7dc873b36", "reference": "e750360bd52b080c4cbaaee1b48b80f7dc873b36", "shasum": "" }, "require": { Loading Loading @@ -1416,9 +1416,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", "source": "https://github.com/doctrine/orm/tree/2.13.2" "source": "https://github.com/doctrine/orm/tree/2.13.3" }, "time": "2022-09-22T13:36:43+00:00" "time": "2022-10-07T06:37:17+00:00" }, { "name": "doctrine/persistence", Loading Loading @@ -2346,32 +2346,32 @@ }, { "name": "laminas/laminas-escaper", "version": "2.10.0", "version": "2.11.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-escaper.git", "reference": "58af67282db37d24e584a837a94ee55b9c7552be" "reference": "ab1f99c18d58c5847d38f14bf20eb570c70904a7" }, "dist": { "type": "zip", "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/58af67282db37d24e584a837a94ee55b9c7552be", "reference": "58af67282db37d24e584a837a94ee55b9c7552be", "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/ab1f99c18d58c5847d38f14bf20eb570c70904a7", "reference": "ab1f99c18d58c5847d38f14bf20eb570c70904a7", "shasum": "" }, "require": { "ext-ctype": "*", "ext-mbstring": "*", "php": "^7.4 || ~8.0.0 || ~8.1.0" "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0" }, "conflict": { "zendframework/zend-escaper": "*" }, "require-dev": { "infection/infection": "^0.26.6", "laminas/laminas-coding-standard": "~2.3.0", "laminas/laminas-coding-standard": "~2.4.0", "maglnet/composer-require-checker": "^3.8.0", "phpunit/phpunit": "^9.5.18", "psalm/plugin-phpunit": "^0.16.1", "psalm/plugin-phpunit": "^0.17.0", "vimeo/psalm": "^4.22.0" }, "type": "library", Loading Loading @@ -2404,7 +2404,7 @@ "type": "community_bridge" } ], "time": "2022-03-08T20:15:36+00:00" "time": "2022-10-10T07:59:17+00:00" }, { "name": "laminas/laminas-eventmanager", Loading
module/Enseignement/config/module.config.php +49 −47 Changes for module/Enseignement/config/module.config.php: 49 added lines, 47 removed lines. Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ use Application\Provider\Privilege\Privileges; use Enseignement\Controller\EnseignementController; use Enseignement\Controller\VolumeHoraireController; use Laminas\ServiceManager\Factory\InvokableFactory; use UnicaenAuth\Assertion\AssertionFactory; return [ Loading Loading @@ -183,7 +184,7 @@ return [ ], 'workflow-etape-code' => WfEtape::CODE_SERVICE_VALIDATION, 'withtarget' => true, // 'visible' => Assertion\ServiceAssertion::class, 'visible' => Assertion\EnseignementAssertion::class, 'order' => 8, ], 'validation-enseignement-realise' => [ Loading @@ -195,7 +196,7 @@ return [ ], 'workflow-etape-code' => WfEtape::CODE_SERVICE_VALIDATION_REALISE, 'withtarget' => true, // 'visible' => Assertion\ServiceAssertion::class, 'visible' => Assertion\EnseignementAssertion::class, 'order' => 14, ], ], Loading @@ -203,46 +204,46 @@ return [ ], 'rules' => [ // [ // 'privileges' => [ // Privileges::ENSEIGNEMENT_PREVU_VISUALISATION, // Privileges::ENSEIGNEMENT_PREVU_EDITION, // Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, // Privileges::ENSEIGNEMENT_REALISE_EDITION, // ], // 'resources' => ['Service', 'Intervenant'], // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => [ // Privileges::ENSEIGNEMENT_PREVU_VALIDATION, // Privileges::ENSEIGNEMENT_REALISE_VALIDATION, // Privileges::ENSEIGNEMENT_PREVU_AUTOVALIDATION, // Privileges::ENSEIGNEMENT_REALISE_AUTOVALIDATION, // ], // 'resources' => ['Service', 'VolumeHoraire', 'Validation'], // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => Privileges::ENSEIGNEMENT_DEVALIDATION, // 'resources' => 'Validation', // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => [ // Privileges::ENSEIGNEMENT_EXTERIEUR, // ], // 'resources' => ['Intervenant', 'Service'], // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => [ // Privileges::MOTIF_NON_PAIEMENT_VISUALISATION, // Privileges::MOTIF_NON_PAIEMENT_EDITION, // ], // 'resources' => 'Intervenant', // 'assertion' => Assertion\ServiceAssertion::class, // ], [ 'privileges' => [ Privileges::ENSEIGNEMENT_PREVU_VISUALISATION, Privileges::ENSEIGNEMENT_PREVU_EDITION, Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, Privileges::ENSEIGNEMENT_REALISE_EDITION, ], 'resources' => ['Service', 'Intervenant'], 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'privileges' => [ Privileges::ENSEIGNEMENT_PREVU_VALIDATION, Privileges::ENSEIGNEMENT_REALISE_VALIDATION, Privileges::ENSEIGNEMENT_PREVU_AUTOVALIDATION, Privileges::ENSEIGNEMENT_REALISE_AUTOVALIDATION, ], 'resources' => ['Service', 'VolumeHoraire', 'Validation'], 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'privileges' => Privileges::ENSEIGNEMENT_DEVALIDATION, 'resources' => 'Validation', 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'privileges' => [ Privileges::ENSEIGNEMENT_EXTERIEUR, ], 'resources' => ['Intervenant', 'Service'], 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'privileges' => [ Privileges::MOTIF_NON_PAIEMENT_VISUALISATION, Privileges::MOTIF_NON_PAIEMENT_EDITION, ], 'resources' => 'Intervenant', 'assertion' => Assertion\EnseignementAssertion::class, ], ], 'guards' => [ Loading @@ -252,7 +253,7 @@ return [ 'privileges' => [ Privileges::ENSEIGNEMENT_PREVU_VISUALISATION, ], //'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'controller' => EnseignementController::class, Loading @@ -260,7 +261,7 @@ return [ 'privileges' => [ Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, ], //'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'controller' => EnseignementController::class, Loading @@ -271,7 +272,7 @@ return [ Privileges::REFERENTIEL_PREVU_EDITION, Privileges::REFERENTIEL_REALISE_EDITION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\EnseignementAssertion::class, ], [ Loading @@ -289,7 +290,7 @@ return [ Privileges::ENSEIGNEMENT_PREVU_EDITION, Privileges::ENSEIGNEMENT_REALISE_EDITION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'controller' => EnseignementController::class, Loading @@ -298,7 +299,7 @@ return [ Privileges::ENSEIGNEMENT_PREVU_VISUALISATION, Privileges::ENSEIGNEMENT_REALISE_VISUALISATION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\EnseignementAssertion::class, ], [ 'controller' => EnseignementController::class, Loading Loading @@ -330,6 +331,7 @@ return [ Processus\ValidationEnseignementProcessus::class => InvokableFactory::class, Service\ServiceService::class => InvokableFactory::class, Service\VolumeHoraireService::class => InvokableFactory::class, Assertion\EnseignementAssertion::class => AssertionFactory::class, ], Loading
module/Referentiel/src/Assertion/ServiceAssertion.php→module/Enseignement/src/Assertion/EnseignementAssertion.php +6 −105 Changes for module/Enseignement/src/Assertion/EnseignementAssertion.php: 6 added lines, 105 removed lines. Original line number Diff line number Diff line <?php namespace Referentiel\Assertion; namespace Enseignement\Assertion; use Application\Acl\Role; use Application\Entity\Db\Intervenant; use Enseignement\Entity\Db\Service; use Referentiel\Entity\Db\ServiceReferentiel; use Application\Entity\Db\Structure; use Service\Controller\ServiceController; use Service\Entity\Db\TypeVolumeHoraire; use Application\Entity\Db\Validation; use Enseignement\Entity\Db\VolumeHoraire; Loading @@ -24,11 +25,11 @@ use Laminas\Permissions\Acl\Resource\ResourceInterface; /** * Description of ServiceAssertion * Description of EnseignementAssertion * * @author LECLUSE Laurent <laurent.lecluse at unicaen.fr> */ class ServiceAssertion extends AbstractAssertion class EnseignementAssertion extends AbstractAssertion { use WorkflowServiceAwareTrait; use ContextServiceAwareTrait; Loading Loading @@ -75,14 +76,8 @@ class ServiceAssertion extends AbstractAssertion switch ($page['route']) { case 'intervenant/validation/service/prevu': return $this->assertEntity($intervenant, Privileges::ENSEIGNEMENT_PREVU_VISUALISATION); case 'intervenant/validation/referentiel/prevu': return $this->assertEntity($intervenant, Privileges::REFERENTIEL_PREVU_VISUALISATION); break; case 'intervenant/validation/service/realise': return $this->assertEntity($intervenant, Privileges::ENSEIGNEMENT_REALISE_VISUALISATION); case 'intervenant/validation/referentiel/realise': return $this->assertEntity($intervenant, Privileges::REFERENTIEL_REALISE_VISUALISATION); break; case 'intervenant/services-prevus': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_PREVU); break; Loading Loading @@ -136,26 +131,6 @@ class ServiceAssertion extends AbstractAssertion return $this->assertVolumeHoraireValidation($role, $entity); } break; case $entity instanceof ServiceReferentiel: switch ($privilege) { case Privileges::REFERENTIEL_PREVU_VISUALISATION: case Privileges::REFERENTIEL_REALISE_VISUALISATION: return $this->assertServiceReferentielVisualisation($role, $entity); case Privileges::REFERENTIEL_PREVU_EDITION: case Privileges::REFERENTIEL_REALISE_EDITION: return $this->assertServiceReferentielEdition($role, $entity); case Privileges::REFERENTIEL_PREVU_VALIDATION: case Privileges::REFERENTIEL_REALISE_VALIDATION: return $this->assertServiceReferentielValidation($role, $entity); } break; case $entity instanceof VolumeHoraireReferentiel: switch ($privilege) { case Privileges::REFERENTIEL_PREVU_VALIDATION: case Privileges::REFERENTIEL_REALISE_VALIDATION: return $this->assertVolumeHoraireReferentielValidation($role, $entity); } break; case $entity instanceof Intervenant: switch ($privilege) { case Privileges::ENSEIGNEMENT_PREVU_VISUALISATION: Loading @@ -170,22 +145,6 @@ class ServiceAssertion extends AbstractAssertion case Privileges::ENSEIGNEMENT_REALISE_EDITION: return $this->assertIntervenantService($role, $entity, TypeVolumeHoraire::CODE_REALISE, true); case Privileges::REFERENTIEL_PREVU_VISUALISATION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_PREVU, false); case Privileges::REFERENTIEL_PREVU_EDITION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_PREVU, true); case Privileges::REFERENTIEL_REALISE_VISUALISATION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_REALISE, false); case Privileges::REFERENTIEL_REALISE_EDITION: return $this->assertIntervenantReferentiel($role, $entity, TypeVolumeHoraire::CODE_REALISE, true); case Privileges::MOTIF_NON_PAIEMENT_VISUALISATION: case Privileges::MOTIF_NON_PAIEMENT_EDITION: return $this->assertMotifNonPaiement($role, $entity); case Privileges::ENSEIGNEMENT_EXTERIEUR: return $this->assertIntervenantServiceExterieur($role, $entity); } Loading @@ -194,12 +153,7 @@ class ServiceAssertion extends AbstractAssertion switch ($privilege) { case Privileges::ENSEIGNEMENT_PREVU_VALIDATION: case Privileges::ENSEIGNEMENT_REALISE_VALIDATION: case Privileges::REFERENTIEL_PREVU_VALIDATION: case Privileges::REFERENTIEL_REALISE_VALIDATION: return $this->assertValidationValidation($role, $entity); case Privileges::ENSEIGNEMENT_DEVALIDATION: case Privileges::REFERENTIEL_DEVALIDATION: return $this->assertValidationDevalidation($role, $entity); } break; } Loading Loading @@ -240,10 +194,10 @@ class ServiceAssertion extends AbstractAssertion return $this->assertImportAgenda($role); break; case 'Application\Controller\Intervenant.servicesPrevus': case ServiceController::class . '.intervenant-saisie-prevu': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_PREVU); break; case 'Application\Controller\Intervenant.servicesRealises': case ServiceController::class . '.intervenant-saisie-prevu': return $this->assertPageServices($role, $intervenant, TypeVolumeHoraire::CODE_REALISE); break; } Loading Loading @@ -383,37 +337,6 @@ class ServiceAssertion extends AbstractAssertion protected function assertServiceReferentielEdition(Role $role, ServiceReferentiel $serviceReferentiel) { $asserts = []; if (!$role->hasPrivilege(Privileges::REFERENTIEL_SAISIE_TOUTES_COMPOSANTES)) { // Si on n'a pas le privilège pour pouvoir du référentiel dans toutes les composantes sans restriction if ($structure = $role->getStructure()) { $structureAffectation = $serviceReferentiel->getIntervenant() ? $serviceReferentiel->getIntervenant()->getStructure() : null; $structureEnseignement = $serviceReferentiel->getStructure(); if ($structureAffectation && $structureEnseignement) { // cas d'un intervenant d'une autre structure prenant un enseignement dans une autre structure $asserts[] = $structure == $structureAffectation || $structure == $structureEnseignement; // le service doit avoir un lien avec la structure } elseif ($structureAffectation && !$structureEnseignement) { // cas d'un intervenant prenant des enseignements à l'extérieur $asserts[] = $structure == $structureAffectation; } elseif (!$structureAffectation && $structureEnseignement) { // cas d'un intervenant extérieur prenant des enseignements de la composante $asserts[] = $structure == $structureEnseignement; } } } $asserts[] = $this->assertIntervenant($role, $serviceReferentiel->getIntervenant()); $asserts[] = $this->assertCampagneSaisie($role, $serviceReferentiel->getTypeVolumeHoraire()); $asserts[] = $this->assertCloture($role, $serviceReferentiel->getIntervenant()); return $this->asserts($asserts); } protected function assertHasServices(Intervenant $intervenant, Structure $structure, string $etape, Role $role) { $services = $intervenant->getService(); Loading Loading @@ -639,28 +562,6 @@ class ServiceAssertion extends AbstractAssertion protected function assertIntervenantReferentiel( Role $role, Intervenant $intervenant, string $typeVolumeHoraireCode, bool $edition = false ) { if (!$this->assertIntervenant($role, $intervenant)) return false; // si on n'est pas le bon intervenant!! $statut = $intervenant->getStatut(); if (TypeVolumeHoraire::CODE_PREVU == $typeVolumeHoraireCode) { if (!$statut->getReferentielPrevu()) return false; } if (TypeVolumeHoraire::CODE_REALISE == $typeVolumeHoraireCode) { if (!$statut->getReferentielRealise()) return false; } return true; } protected function assertStructure(Role $role, ?Structure $structure = null) { if ($structure) { Loading
module/Referentiel/config/module.config.php +32 −34 Changes for module/Referentiel/config/module.config.php: 32 added lines, 34 removed lines. Original line number Diff line number Diff line Loading @@ -182,7 +182,7 @@ return [ ], 'workflow-etape-code' => WfEtape::CODE_REFERENTIEL_VALIDATION, 'withtarget' => true, 'visible' => Assertion\ServiceAssertion::class, 'visible' => Assertion\ReferentielAssertion::class, 'order' => 9, ], 'validation-referentiel-realise' => [ Loading @@ -194,7 +194,7 @@ return [ ], 'workflow-etape-code' => WfEtape::CODE_REFERENTIEL_VALIDATION_REALISE, 'withtarget' => true, 'visible' => Assertion\ServiceAssertion::class, 'visible' => Assertion\ReferentielAssertion::class, 'order' => 15, ], ], Loading @@ -216,31 +216,31 @@ return [ ], 'rules' => [ // [ // 'privileges' => [ // Privileges::REFERENTIEL_PREVU_VISUALISATION, // Privileges::REFERENTIEL_PREVU_EDITION, // Privileges::REFERENTIEL_REALISE_VISUALISATION, // Privileges::REFERENTIEL_REALISE_EDITION, // ], // 'resources' => ['ServiceReferentiel', 'Intervenant'], // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => [ // Privileges::REFERENTIEL_PREVU_VALIDATION, // Privileges::REFERENTIEL_REALISE_VALIDATION, // Privileges::REFERENTIEL_PREVU_AUTOVALIDATION, // Privileges::REFERENTIEL_REALISE_AUTOVALIDATION, // ], // 'resources' => ['ServiceReferentiel', 'VolumeHoraireReferentiel', 'Validation'], // 'assertion' => Assertion\ServiceAssertion::class, // ], // [ // 'privileges' => Privileges::REFERENTIEL_DEVALIDATION, // 'resources' => 'Validation', // 'assertion' => Assertion\ServiceAssertion::class, // ], [ 'privileges' => [ Privileges::REFERENTIEL_PREVU_VISUALISATION, Privileges::REFERENTIEL_PREVU_EDITION, Privileges::REFERENTIEL_REALISE_VISUALISATION, Privileges::REFERENTIEL_REALISE_EDITION, ], 'resources' => ['ServiceReferentiel', 'Intervenant'], 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'privileges' => [ Privileges::REFERENTIEL_PREVU_VALIDATION, Privileges::REFERENTIEL_REALISE_VALIDATION, Privileges::REFERENTIEL_PREVU_AUTOVALIDATION, Privileges::REFERENTIEL_REALISE_AUTOVALIDATION, ], 'resources' => ['ServiceReferentiel', 'VolumeHoraireReferentiel', 'Validation'], 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'privileges' => Privileges::REFERENTIEL_DEVALIDATION, 'resources' => 'Validation', 'assertion' => Assertion\ReferentielAssertion::class, ], ], 'guards' => [ Loading @@ -254,15 +254,13 @@ return [ 'action' => ['saisie', 'delete'], 'privileges' => [Privileges::REFERENTIEL_ADMIN_EDITION], ], [ 'controller' => ServiceReferentielController::class, 'action' => ['prevu'], 'privileges' => [ Privileges::REFERENTIEL_PREVU_VISUALISATION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'controller' => ServiceReferentielController::class, Loading @@ -270,7 +268,7 @@ return [ 'privileges' => [ Privileges::REFERENTIEL_REALISE_VISUALISATION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'controller' => ServiceReferentielController::class, Loading @@ -279,7 +277,7 @@ return [ Privileges::REFERENTIEL_PREVU_EDITION, Privileges::REFERENTIEL_REALISE_EDITION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'controller' => ServiceReferentielController::class, Loading @@ -288,7 +286,7 @@ return [ Privileges::REFERENTIEL_PREVU_VISUALISATION, Privileges::REFERENTIEL_REALISE_VISUALISATION, ], // 'assertion' => Assertion\ServiceAssertion::class, 'assertion' => Assertion\ReferentielAssertion::class, ], [ 'controller' => ServiceReferentielController::class, Loading Loading @@ -318,7 +316,7 @@ return [ Service\VolumeHoraireReferentielService::class => InvokableFactory::class, Processus\ServiceReferentielProcessus::class => InvokableFactory::class, Processus\ValidationReferentielProcessus::class => InvokableFactory::class, Assertion\ServiceAssertion::class => AssertionFactory::class, Assertion\ReferentielAssertion::class => AssertionFactory::class, ], 'forms' => [ Loading
module/Referentiel/src/Assertion/ReferentielAssertion.php 0 → 100755 +489 −0 File added.Preview size limit exceeded, changes collapsed. Show changes