Loading module/Application/src/ConfigFactory.php +30 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ class ConfigFactory $paths = Glob::glob($dir . '/config/{,*.}{config}.php', Glob::GLOB_BRACE); $config = Factory::fromFiles($paths); $routeGuards = []; $finalConfig = [ 'doctrine' => [ Loading Loading @@ -44,14 +45,14 @@ class ConfigFactory if (isset($config['console'])) { $finalConfig['console']['router']['routes'] = []; foreach ($config['console'] as $cr => $cc) { $finalConfig['console']['router']['routes'][$cr] = self::routeSimplified($cc, true); $finalConfig['console']['router']['routes'][$cr] = self::routeSimplified($cc, $routeGuards, true); } } if (isset($config['routes'])) { $finalConfig['router']['routes'] = []; foreach ($config['routes'] as $cr => $cc) { $finalConfig['router']['routes'][$cr] = self::routeSimplified($cc, false); $finalConfig['router']['routes'][$cr] = self::routeSimplified($cc, $routeGuards, false); } } Loading @@ -73,6 +74,12 @@ class ConfigFactory ]; } if (!empty($routeGuards)) { foreach ($routeGuards as $routeGuard) { $finalConfig['bjyauthorize']['guards'][PrivilegeController::class][] = $routeGuard; } } if (isset($config['rules'])) { if (!isset($finalConfig['bjyauthorize'])) $finalConfig['bjyauthorize'] = []; $finalConfig['bjyauthorize']['rule_providers'] = [ Loading Loading @@ -134,8 +141,26 @@ class ConfigFactory public static function routeSimplified(array $config, bool $isConsole = false): array public static function routeSimplified(array $config, array &$routeGuards, bool $isConsole = false): array { /* Détection des guards */ if (isset($config['controller']) && isset($config['action']) && isset($config['privileges'])) { $routeGuard = [ 'controller' => $config['controller'], 'action' => $config['action'], 'privileges' => $config['privileges'], ]; unset($config['privileges']); if (isset($config['assertion'])) { $routeGuard['assertion'] = $config['assertion']; unset($config['assertion']); } $routeGuards[] = $routeGuard; } /* On remonte ces params dans le sous-menu options */ $optionsParams = ['route', 'defaults', 'constraints']; foreach ($optionsParams as $param) { Loading Loading @@ -169,7 +194,7 @@ class ConfigFactory /* Si il y a des routes filles, on les parse aussi */ if (isset($config['child_routes'])) { foreach ($config['child_routes'] as $sRoute => $sConfig) { $config['child_routes'][$sRoute] = self::routeSimplified($sConfig); $config['child_routes'][$sRoute] = self::routeSimplified($sConfig, $routeGuards); } } Loading module/Mission/config/module.config.php +23 −41 Original line number Diff line number Diff line Loading @@ -5,10 +5,7 @@ namespace Mission; use Application\Entity\Db\WfEtape; use Application\Provider\Privilege\Privileges; use Mission\Controller\MissionController; use Mission\Controller\TauxController; use Mission\Controller\MissionTypeController; use Mission\Service\TauxService; use Mission\Service\TauxServiceFactory; use Mission\Service\MissionTypeService; use Mission\Service\MissionTypeServiceFactory; use UnicaenAuth\Assertion\AssertionFactory; Loading @@ -23,12 +20,16 @@ return [ 'route' => '/:intervenant/missions', 'controller' => MissionController::class, 'action' => 'index', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, 'may_terminate' => true, 'child_routes' => [ 'modification' => [ 'route' => '/modification', 'controller' => MissionController::class, 'action' => 'modification', 'privileges' => Privileges::MISSION_EDITION, //'assertion' => Assertion\MissionAssertion::class, ], ], ], Loading @@ -42,36 +43,52 @@ return [ 'route' => '/liste/:intervenant', 'controller' => MissionController::class, 'action' => 'liste', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, ], 'get' => [ 'route' => '/get/:mission', 'controller' => MissionController::class, 'action' => 'get', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, ], 'ajout' => [ 'route' => '/ajout/:intervenant', 'controller' => MissionController::class, 'action' => 'ajout', 'privileges' => Privileges::MISSION_EDITION, //'assertion' => Assertion\MissionAssertion::class, ], 'saisie' => [ 'route' => '/saisie/:mission', 'controller' => MissionController::class, 'action' => 'saisie', 'privileges' => Privileges::MISSION_EDITION, //'assertion' => Assertion\MissionAssertion::class, ], 'suivi' => [ 'route' => '/suivi/:intervenant', 'controller' => MissionController::class, 'action' => 'suivi', ], 'supprimer' => [ 'route' => '/supprimer/:mission', 'controller' => MissionController::class, 'action' => 'supprimer', 'privileges' => Privileges::MISSION_EDITION, ], 'valider' => [ 'route' => '/valider/:mission', 'controller' => MissionController::class, 'action' => 'valider', 'privileges' => Privileges::MISSION_VALIDATION, ], 'devalider' => [ 'route' => '/devalider/:mission', 'controller' => MissionController::class, 'action' => 'devalider', 'privileges' => Privileges::MISSION_DEVALIDATION, ], 'volume-horaire' => [ 'route' => '/volume-horaire', Loading @@ -82,16 +99,19 @@ return [ 'route' => '/supprimer/:volumeHoraireMission', 'controller' => MissionController::class, 'action' => 'volume-horaire-supprimer', 'privileges' => Privileges::MISSION_EDITION, ], 'valider' => [ 'route' => '/valider/:volumeHoraireMission', 'controller' => MissionController::class, 'action' => 'volume-horaire-valider', 'privileges' => Privileges::MISSION_VALIDATION, ], 'devalider' => [ 'route' => '/devalider/:volumeHoraireMission', 'controller' => MissionController::class, 'action' => 'volume-horaire-devalider', 'privileges' => Privileges::MISSION_DEVALIDATION, ], ], ], Loading Loading @@ -155,44 +175,6 @@ return [ ], 'guards' => [ [ 'controller' => MissionController::class, 'action' => ['index', 'get', 'liste'], 'privileges' => [ Privileges::MISSION_VISUALISATION, ], //'assertion' => Assertion\MissionAssertion::class, ], [ 'controller' => MissionController::class, 'action' => ['ajout', 'saisie'], 'privileges' => [ Privileges::MISSION_EDITION, ], //'assertion' => Assertion\MissionAssertion::class, ], [ 'controller' => MissionController::class, 'action' => ['supprimer', 'volume-horaire-supprimer'], 'privileges' => [ Privileges::MISSION_EDITION, ], ], [ 'controller' => MissionController::class, 'action' => ['valider', 'volume-horaire-valider'], 'privileges' => [ Privileges::MISSION_VALIDATION, ], ], [ 'controller' => MissionController::class, 'action' => ['devalider', 'volume-horaire-devalider'], 'privileges' => [ Privileges::MISSION_DEVALIDATION, ], //'assertion' => Assertion\MissionAssertion::class, ], [ 'controller' => MissionTypeController::class, 'action' => ['index'], Loading module/Mission/src/Controller/MissionController.php +10 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,16 @@ class MissionController extends AbstractController public function suiviAction() { /* @var $intervenant Intervenant */ $intervenant = $this->getEvent()->getParam('intervenant'); return compact('intervenant'); } /** * Ajoute une nouvelle mission (form) * Loading module/Mission/view/mission/mission/suivi.phtml 0 → 100644 +21 −0 Original line number Diff line number Diff line <?php /** * @var $this \Application\View\Renderer\PhpRenderer * @var $intervenant \Application\Entity\Db\Intervenant */ use Application\Entity\Db\WfEtape; $title = 'Suivi de missions'; $nextEtape = WfEtape::CODE_SERVICE_SAISIE; $this->intervenant($intervenant)->renderTitle($title); echo $this->messenger()->addCurrentMessagesFromFlashMessenger(); echo $this->vue('mission/suivi', [ 'intervenant' => $intervenant->getId(), ]); echo '<br />'; echo $this->feuilleDeRoute($intervenant)->renderNav($nextEtape); No newline at end of file Loading
module/Application/src/ConfigFactory.php +30 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ class ConfigFactory $paths = Glob::glob($dir . '/config/{,*.}{config}.php', Glob::GLOB_BRACE); $config = Factory::fromFiles($paths); $routeGuards = []; $finalConfig = [ 'doctrine' => [ Loading Loading @@ -44,14 +45,14 @@ class ConfigFactory if (isset($config['console'])) { $finalConfig['console']['router']['routes'] = []; foreach ($config['console'] as $cr => $cc) { $finalConfig['console']['router']['routes'][$cr] = self::routeSimplified($cc, true); $finalConfig['console']['router']['routes'][$cr] = self::routeSimplified($cc, $routeGuards, true); } } if (isset($config['routes'])) { $finalConfig['router']['routes'] = []; foreach ($config['routes'] as $cr => $cc) { $finalConfig['router']['routes'][$cr] = self::routeSimplified($cc, false); $finalConfig['router']['routes'][$cr] = self::routeSimplified($cc, $routeGuards, false); } } Loading @@ -73,6 +74,12 @@ class ConfigFactory ]; } if (!empty($routeGuards)) { foreach ($routeGuards as $routeGuard) { $finalConfig['bjyauthorize']['guards'][PrivilegeController::class][] = $routeGuard; } } if (isset($config['rules'])) { if (!isset($finalConfig['bjyauthorize'])) $finalConfig['bjyauthorize'] = []; $finalConfig['bjyauthorize']['rule_providers'] = [ Loading Loading @@ -134,8 +141,26 @@ class ConfigFactory public static function routeSimplified(array $config, bool $isConsole = false): array public static function routeSimplified(array $config, array &$routeGuards, bool $isConsole = false): array { /* Détection des guards */ if (isset($config['controller']) && isset($config['action']) && isset($config['privileges'])) { $routeGuard = [ 'controller' => $config['controller'], 'action' => $config['action'], 'privileges' => $config['privileges'], ]; unset($config['privileges']); if (isset($config['assertion'])) { $routeGuard['assertion'] = $config['assertion']; unset($config['assertion']); } $routeGuards[] = $routeGuard; } /* On remonte ces params dans le sous-menu options */ $optionsParams = ['route', 'defaults', 'constraints']; foreach ($optionsParams as $param) { Loading Loading @@ -169,7 +194,7 @@ class ConfigFactory /* Si il y a des routes filles, on les parse aussi */ if (isset($config['child_routes'])) { foreach ($config['child_routes'] as $sRoute => $sConfig) { $config['child_routes'][$sRoute] = self::routeSimplified($sConfig); $config['child_routes'][$sRoute] = self::routeSimplified($sConfig, $routeGuards); } } Loading
module/Mission/config/module.config.php +23 −41 Original line number Diff line number Diff line Loading @@ -5,10 +5,7 @@ namespace Mission; use Application\Entity\Db\WfEtape; use Application\Provider\Privilege\Privileges; use Mission\Controller\MissionController; use Mission\Controller\TauxController; use Mission\Controller\MissionTypeController; use Mission\Service\TauxService; use Mission\Service\TauxServiceFactory; use Mission\Service\MissionTypeService; use Mission\Service\MissionTypeServiceFactory; use UnicaenAuth\Assertion\AssertionFactory; Loading @@ -23,12 +20,16 @@ return [ 'route' => '/:intervenant/missions', 'controller' => MissionController::class, 'action' => 'index', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, 'may_terminate' => true, 'child_routes' => [ 'modification' => [ 'route' => '/modification', 'controller' => MissionController::class, 'action' => 'modification', 'privileges' => Privileges::MISSION_EDITION, //'assertion' => Assertion\MissionAssertion::class, ], ], ], Loading @@ -42,36 +43,52 @@ return [ 'route' => '/liste/:intervenant', 'controller' => MissionController::class, 'action' => 'liste', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, ], 'get' => [ 'route' => '/get/:mission', 'controller' => MissionController::class, 'action' => 'get', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, ], 'ajout' => [ 'route' => '/ajout/:intervenant', 'controller' => MissionController::class, 'action' => 'ajout', 'privileges' => Privileges::MISSION_EDITION, //'assertion' => Assertion\MissionAssertion::class, ], 'saisie' => [ 'route' => '/saisie/:mission', 'controller' => MissionController::class, 'action' => 'saisie', 'privileges' => Privileges::MISSION_EDITION, //'assertion' => Assertion\MissionAssertion::class, ], 'suivi' => [ 'route' => '/suivi/:intervenant', 'controller' => MissionController::class, 'action' => 'suivi', ], 'supprimer' => [ 'route' => '/supprimer/:mission', 'controller' => MissionController::class, 'action' => 'supprimer', 'privileges' => Privileges::MISSION_EDITION, ], 'valider' => [ 'route' => '/valider/:mission', 'controller' => MissionController::class, 'action' => 'valider', 'privileges' => Privileges::MISSION_VALIDATION, ], 'devalider' => [ 'route' => '/devalider/:mission', 'controller' => MissionController::class, 'action' => 'devalider', 'privileges' => Privileges::MISSION_DEVALIDATION, ], 'volume-horaire' => [ 'route' => '/volume-horaire', Loading @@ -82,16 +99,19 @@ return [ 'route' => '/supprimer/:volumeHoraireMission', 'controller' => MissionController::class, 'action' => 'volume-horaire-supprimer', 'privileges' => Privileges::MISSION_EDITION, ], 'valider' => [ 'route' => '/valider/:volumeHoraireMission', 'controller' => MissionController::class, 'action' => 'volume-horaire-valider', 'privileges' => Privileges::MISSION_VALIDATION, ], 'devalider' => [ 'route' => '/devalider/:volumeHoraireMission', 'controller' => MissionController::class, 'action' => 'volume-horaire-devalider', 'privileges' => Privileges::MISSION_DEVALIDATION, ], ], ], Loading Loading @@ -155,44 +175,6 @@ return [ ], 'guards' => [ [ 'controller' => MissionController::class, 'action' => ['index', 'get', 'liste'], 'privileges' => [ Privileges::MISSION_VISUALISATION, ], //'assertion' => Assertion\MissionAssertion::class, ], [ 'controller' => MissionController::class, 'action' => ['ajout', 'saisie'], 'privileges' => [ Privileges::MISSION_EDITION, ], //'assertion' => Assertion\MissionAssertion::class, ], [ 'controller' => MissionController::class, 'action' => ['supprimer', 'volume-horaire-supprimer'], 'privileges' => [ Privileges::MISSION_EDITION, ], ], [ 'controller' => MissionController::class, 'action' => ['valider', 'volume-horaire-valider'], 'privileges' => [ Privileges::MISSION_VALIDATION, ], ], [ 'controller' => MissionController::class, 'action' => ['devalider', 'volume-horaire-devalider'], 'privileges' => [ Privileges::MISSION_DEVALIDATION, ], //'assertion' => Assertion\MissionAssertion::class, ], [ 'controller' => MissionTypeController::class, 'action' => ['index'], Loading
module/Mission/src/Controller/MissionController.php +10 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,16 @@ class MissionController extends AbstractController public function suiviAction() { /* @var $intervenant Intervenant */ $intervenant = $this->getEvent()->getParam('intervenant'); return compact('intervenant'); } /** * Ajoute une nouvelle mission (form) * Loading
module/Mission/view/mission/mission/suivi.phtml 0 → 100644 +21 −0 Original line number Diff line number Diff line <?php /** * @var $this \Application\View\Renderer\PhpRenderer * @var $intervenant \Application\Entity\Db\Intervenant */ use Application\Entity\Db\WfEtape; $title = 'Suivi de missions'; $nextEtape = WfEtape::CODE_SERVICE_SAISIE; $this->intervenant($intervenant)->renderTitle($title); echo $this->messenger()->addCurrentMessagesFromFlashMessenger(); echo $this->vue('mission/suivi', [ 'intervenant' => $intervenant->getId(), ]); echo '<br />'; echo $this->feuilleDeRoute($intervenant)->renderNav($nextEtape); No newline at end of file