Loading module/Mission/config/module.config.php +0 −1 Changes for module/Mission/config/module.config.php: 0 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -7,7 +7,6 @@ use UnicaenPrivilege\Assertion\AssertionFactory; return [ 'services' => [ Assertion\WorkflowAssertion::class => AssertionFactory::class, Service\MissionService::class => Service\MissionServiceFactory::class, ], ]; No newline at end of file module/Mission/config/saisie.config.php +12 −7 Changes for module/Mission/config/saisie.config.php: 12 added lines, 7 removed lines. Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ return [ 'controller' => Controller\SaisieController::class, 'action' => 'index', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SaisieAssertion::class, ], ], ], Loading @@ -29,46 +29,49 @@ return [ 'controller' => Controller\SaisieController::class, 'action' => 'liste', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SaisieAssertion::class, ], 'get' => [ 'route' => '/get/:mission', 'controller' => Controller\SaisieController::class, 'action' => 'get', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SaisieAssertion::class, ], 'ajout' => [ 'route' => '/ajout/:intervenant', 'controller' => Controller\SaisieController::class, 'action' => 'ajout', 'privileges' => Privileges::MISSION_EDITION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SaisieAssertion::class, ], 'saisie' => [ 'route' => '/saisie/:mission', 'controller' => Controller\SaisieController::class, 'action' => 'saisie', 'privileges' => Privileges::MISSION_EDITION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SaisieAssertion::class, ], 'supprimer' => [ 'route' => '/supprimer/:mission', 'controller' => Controller\SaisieController::class, 'action' => 'supprimer', 'privileges' => Privileges::MISSION_EDITION, 'assertion' => Assertion\SaisieAssertion::class, ], 'valider' => [ 'route' => '/valider/:mission', 'controller' => Controller\SaisieController::class, 'action' => 'valider', 'privileges' => Privileges::MISSION_VALIDATION, 'assertion' => Assertion\SaisieAssertion::class, ], 'devalider' => [ 'route' => '/devalider/:mission', 'controller' => Controller\SaisieController::class, 'action' => 'devalider', 'privileges' => Privileges::MISSION_DEVALIDATION, 'assertion' => Assertion\SaisieAssertion::class, ], 'volume-horaire' => [ 'route' => '/volume-horaire', Loading @@ -80,18 +83,21 @@ return [ 'controller' => Controller\SaisieController::class, 'action' => 'volume-horaire-supprimer', 'privileges' => Privileges::MISSION_EDITION, 'assertion' => Assertion\SaisieAssertion::class, ], 'valider' => [ 'route' => '/valider/:volumeHoraireMission', 'controller' => Controller\SaisieController::class, 'action' => 'volume-horaire-valider', 'privileges' => Privileges::MISSION_VALIDATION, 'assertion' => Assertion\SaisieAssertion::class, ], 'devalider' => [ 'route' => '/devalider/:volumeHoraireMission', 'controller' => Controller\SaisieController::class, 'action' => 'volume-horaire-devalider', 'privileges' => Privileges::MISSION_DEVALIDATION, 'assertion' => Assertion\SaisieAssertion::class, ], ], ], Loading @@ -109,9 +115,8 @@ return [ 'paramsInject' => [ 'intervenant', ], 'workflow-etape-code' => WfEtape::CODE_MISSION_SAISIE, 'withtarget' => true, 'visible' => Assertion\WorkflowAssertion::class, 'visible' => Assertion\SaisieAssertion::class, 'order' => 8, ], ], Loading module/Mission/config/suivi.config.php +8 −8 Changes for module/Mission/config/suivi.config.php: 8 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ return [ 'controller' => Controller\SuiviController::class, 'action' => 'index', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], ], ], Loading @@ -30,41 +30,42 @@ return [ 'controller' => Controller\SuiviController::class, 'action' => 'liste', 'privileges' => Privileges::MISSION_VISUALISATION, 'assertion' => Assertion\SuiviAssertion::class, ], 'ajout' => [ 'route' => '/ajout/:intervenant/:date', 'controller' => Controller\SuiviController::class, 'action' => 'ajout', 'privileges' => Privileges::MISSION_EDITION_REALISE, // 'assertion' => Assertion\SuiviAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], 'modifier' => [ 'route' => '/modifier/:volumeHoraireMission', 'controller' => Controller\SuiviController::class, 'action' => 'modifier', 'privileges' => Privileges::MISSION_EDITION_REALISE, // 'assertion' => Assertion\SuiviAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], 'supprimer' => [ 'route' => '/supprimer/:volumeHoraireMission', 'controller' => Controller\SuiviController::class, 'action' => 'supprimer', 'privileges' => Privileges::MISSION_EDITION_REALISE, // 'assertion' => Assertion\SuiviAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], 'valider' => [ 'route' => '/valider/:volumeHoraireMission', 'controller' => Controller\SuiviController::class, 'action' => 'valider', 'privileges' => Privileges::MISSION_VALIDATION_REALISE, // 'assertion' => Assertion\SuiviAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], 'devalider' => [ 'route' => '/devalider/:volumeHoraireMission', 'controller' => Controller\SuiviController::class, 'action' => 'devalider', 'privileges' => Privileges::MISSION_DEVALIDATION_REALISE, // 'assertion' => Assertion\SuiviAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], ], ], Loading @@ -83,9 +84,8 @@ return [ 'paramsInject' => [ 'intervenant', ], 'workflow-etape-code' => WfEtape::CODE_MISSION_SAISIE_REALISE, 'withtarget' => true, 'visible' => Assertion\WorkflowAssertion::class, 'visible' => Assertion\SuiviAssertion::class, 'order' => 13, ], ], Loading module/Mission/src/Assertion/SaisieAssertion.php +82 −0 Changes for module/Mission/src/Assertion/SaisieAssertion.php: 82 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,8 +3,11 @@ namespace Mission\Assertion; use Application\Acl\Role; use Application\Entity\Db\Intervenant; use Application\Entity\Db\Structure; use Application\Entity\Db\WfEtape; use Application\Provider\Privilege\Privileges; use Application\Service\Traits\WorkflowServiceAwareTrait; use Mission\Entity\Db\Mission; use Mission\Entity\Db\VolumeHoraireMission; use UnicaenPrivilege\Assertion\AbstractAssertion; Loading @@ -18,6 +21,85 @@ use Laminas\Permissions\Acl\Resource\ResourceInterface; */ class SaisieAssertion extends AbstractAssertion { use WorkflowServiceAwareTrait; /* ---- Routage général ---- */ public function __invoke(array $page) // gestion des visibilités de menus { return $this->assertPage($page); } protected function assertPage(array $page) { /* @var $role Role */ $role = $this->getRole(); /** @var Intervenant $intervenant */ $intervenant = $this->getMvcEvent()->getParam('intervenant'); if (!$role || !$intervenant) return false; return $this->assertWorkflow($intervenant,); } protected function assertController($controller, $action = null, $privilege = null) { /* @var $role Role */ $role = $this->getRole(); // Si le rôle n'est pas renseigné alors on s'en va... if (!$role instanceof Role) return false; // pareil si le rôle ne possède pas le privilège adéquat if ($privilege && !$role->hasPrivilege($privilege)) return false; // Si c'est bon alors on affine... $entity = $this->getMvcEvent()->getParam('intervenant'); if (!$entity) { $entity = $this->getMvcEvent()->getParam('mission'); } if (!$entity) { $entity = $this->getMvcEvent()->getParam('volumeHoraireMission'); } if (!$entity) { return false; } return $this->assertWorkflow($entity); } protected function assertWorkflow(Mission|Intervenant|VolumeHoraireMission $entity) { $codeEtape = WfEtape::CODE_MISSION_SAISIE; $structure = null; if ($entity instanceof Intervenant) { /** @var Role $role */ $role = $this->getRole(); $structure = $role->getStructure(); } if ($entity instanceof VolumeHoraireMission) { $entity = $entity->getMission(); } if ($entity instanceof Mission) { $structure = $entity->getStructure(); $entity = $entity->getIntervenant(); } $wfEtape = $this->getServiceWorkflow()->getEtape($codeEtape, $entity, $structure); if (!$wfEtape) return false; return $wfEtape->isAtteignable(); } protected function assertEntity(ResourceInterface $entity = null, $privilege = null) { Loading module/Mission/src/Assertion/SuiviAssertion.php +78 −1 Changes for module/Mission/src/Assertion/SuiviAssertion.php: 78 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -5,7 +5,9 @@ namespace Mission\Assertion; use Application\Acl\Role; use Application\Entity\Db\Intervenant; use Application\Entity\Db\Structure; use Application\Entity\Db\WfEtape; use Application\Provider\Privilege\Privileges; use Application\Service\Traits\WorkflowServiceAwareTrait; use Mission\Entity\Db\Mission; use Mission\Entity\Db\VolumeHoraireMission; use UnicaenPrivilege\Assertion\AbstractAssertion; Loading @@ -19,6 +21,82 @@ use Laminas\Permissions\Acl\Resource\ResourceInterface; */ class SuiviAssertion extends AbstractAssertion { use WorkflowServiceAwareTrait; /* ---- Routage général ---- */ public function __invoke(array $page) // gestion des visibilités de menus { return $this->assertPage($page); } protected function assertPage(array $page) { /* @var $role Role */ $role = $this->getRole(); /** @var Intervenant $intervenant */ $intervenant = $this->getMvcEvent()->getParam('intervenant'); if (!$role || !$intervenant) return false; return $this->assertWorkflow($intervenant,); } protected function assertController($controller, $action = null, $privilege = null) { /* @var $role Role */ $role = $this->getRole(); // Si le rôle n'est pas renseigné alors on s'en va... if (!$role instanceof Role) return false; // pareil si le rôle ne possède pas le privilège adéquat if ($privilege && !$role->hasPrivilege($privilege)) return false; // Si c'est bon alors on affine... $entity = $this->getMvcEvent()->getParam('intervenant'); if (!$entity) { $entity = $this->getMvcEvent()->getParam('volumeHoraireMission'); } if (!$entity) { return false; } return $this->assertWorkflow($entity); } protected function assertWorkflow(Mission|Intervenant|VolumeHoraireMission $entity) { $codeEtape = WfEtape::CODE_MISSION_SAISIE_REALISE; $structure = null; if ($entity instanceof Intervenant) { /** @var Role $role */ $role = $this->getRole(); $structure = $role->getStructure(); } if ($entity instanceof VolumeHoraireMission) { $entity = $entity->getMission(); } if ($entity instanceof Mission) { $structure = $entity->getStructure(); $entity = $entity->getIntervenant(); } $wfEtape = $this->getServiceWorkflow()->getEtape($codeEtape, $entity, $structure); if (!$wfEtape) return false; return $wfEtape->isAtteignable(); } protected function assertEntity(ResourceInterface $entity = null, $privilege = null) { Loading Loading @@ -49,7 +127,6 @@ class SuiviAssertion extends AbstractAssertion protected function assertVolumeHoraireEdition(Role $role, VolumeHoraireMission $vhm) { return $this->asserts([ Loading Loading
module/Mission/config/module.config.php +0 −1 Changes for module/Mission/config/module.config.php: 0 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -7,7 +7,6 @@ use UnicaenPrivilege\Assertion\AssertionFactory; return [ 'services' => [ Assertion\WorkflowAssertion::class => AssertionFactory::class, Service\MissionService::class => Service\MissionServiceFactory::class, ], ]; No newline at end of file
module/Mission/config/saisie.config.php +12 −7 Changes for module/Mission/config/saisie.config.php: 12 added lines, 7 removed lines. Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ return [ 'controller' => Controller\SaisieController::class, 'action' => 'index', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SaisieAssertion::class, ], ], ], Loading @@ -29,46 +29,49 @@ return [ 'controller' => Controller\SaisieController::class, 'action' => 'liste', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SaisieAssertion::class, ], 'get' => [ 'route' => '/get/:mission', 'controller' => Controller\SaisieController::class, 'action' => 'get', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SaisieAssertion::class, ], 'ajout' => [ 'route' => '/ajout/:intervenant', 'controller' => Controller\SaisieController::class, 'action' => 'ajout', 'privileges' => Privileges::MISSION_EDITION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SaisieAssertion::class, ], 'saisie' => [ 'route' => '/saisie/:mission', 'controller' => Controller\SaisieController::class, 'action' => 'saisie', 'privileges' => Privileges::MISSION_EDITION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SaisieAssertion::class, ], 'supprimer' => [ 'route' => '/supprimer/:mission', 'controller' => Controller\SaisieController::class, 'action' => 'supprimer', 'privileges' => Privileges::MISSION_EDITION, 'assertion' => Assertion\SaisieAssertion::class, ], 'valider' => [ 'route' => '/valider/:mission', 'controller' => Controller\SaisieController::class, 'action' => 'valider', 'privileges' => Privileges::MISSION_VALIDATION, 'assertion' => Assertion\SaisieAssertion::class, ], 'devalider' => [ 'route' => '/devalider/:mission', 'controller' => Controller\SaisieController::class, 'action' => 'devalider', 'privileges' => Privileges::MISSION_DEVALIDATION, 'assertion' => Assertion\SaisieAssertion::class, ], 'volume-horaire' => [ 'route' => '/volume-horaire', Loading @@ -80,18 +83,21 @@ return [ 'controller' => Controller\SaisieController::class, 'action' => 'volume-horaire-supprimer', 'privileges' => Privileges::MISSION_EDITION, 'assertion' => Assertion\SaisieAssertion::class, ], 'valider' => [ 'route' => '/valider/:volumeHoraireMission', 'controller' => Controller\SaisieController::class, 'action' => 'volume-horaire-valider', 'privileges' => Privileges::MISSION_VALIDATION, 'assertion' => Assertion\SaisieAssertion::class, ], 'devalider' => [ 'route' => '/devalider/:volumeHoraireMission', 'controller' => Controller\SaisieController::class, 'action' => 'volume-horaire-devalider', 'privileges' => Privileges::MISSION_DEVALIDATION, 'assertion' => Assertion\SaisieAssertion::class, ], ], ], Loading @@ -109,9 +115,8 @@ return [ 'paramsInject' => [ 'intervenant', ], 'workflow-etape-code' => WfEtape::CODE_MISSION_SAISIE, 'withtarget' => true, 'visible' => Assertion\WorkflowAssertion::class, 'visible' => Assertion\SaisieAssertion::class, 'order' => 8, ], ], Loading
module/Mission/config/suivi.config.php +8 −8 Changes for module/Mission/config/suivi.config.php: 8 added lines, 8 removed lines. Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ return [ 'controller' => Controller\SuiviController::class, 'action' => 'index', 'privileges' => Privileges::MISSION_VISUALISATION, //'assertion' => Assertion\MissionAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], ], ], Loading @@ -30,41 +30,42 @@ return [ 'controller' => Controller\SuiviController::class, 'action' => 'liste', 'privileges' => Privileges::MISSION_VISUALISATION, 'assertion' => Assertion\SuiviAssertion::class, ], 'ajout' => [ 'route' => '/ajout/:intervenant/:date', 'controller' => Controller\SuiviController::class, 'action' => 'ajout', 'privileges' => Privileges::MISSION_EDITION_REALISE, // 'assertion' => Assertion\SuiviAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], 'modifier' => [ 'route' => '/modifier/:volumeHoraireMission', 'controller' => Controller\SuiviController::class, 'action' => 'modifier', 'privileges' => Privileges::MISSION_EDITION_REALISE, // 'assertion' => Assertion\SuiviAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], 'supprimer' => [ 'route' => '/supprimer/:volumeHoraireMission', 'controller' => Controller\SuiviController::class, 'action' => 'supprimer', 'privileges' => Privileges::MISSION_EDITION_REALISE, // 'assertion' => Assertion\SuiviAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], 'valider' => [ 'route' => '/valider/:volumeHoraireMission', 'controller' => Controller\SuiviController::class, 'action' => 'valider', 'privileges' => Privileges::MISSION_VALIDATION_REALISE, // 'assertion' => Assertion\SuiviAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], 'devalider' => [ 'route' => '/devalider/:volumeHoraireMission', 'controller' => Controller\SuiviController::class, 'action' => 'devalider', 'privileges' => Privileges::MISSION_DEVALIDATION_REALISE, // 'assertion' => Assertion\SuiviAssertion::class, 'assertion' => Assertion\SuiviAssertion::class, ], ], ], Loading @@ -83,9 +84,8 @@ return [ 'paramsInject' => [ 'intervenant', ], 'workflow-etape-code' => WfEtape::CODE_MISSION_SAISIE_REALISE, 'withtarget' => true, 'visible' => Assertion\WorkflowAssertion::class, 'visible' => Assertion\SuiviAssertion::class, 'order' => 13, ], ], Loading
module/Mission/src/Assertion/SaisieAssertion.php +82 −0 Changes for module/Mission/src/Assertion/SaisieAssertion.php: 82 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -3,8 +3,11 @@ namespace Mission\Assertion; use Application\Acl\Role; use Application\Entity\Db\Intervenant; use Application\Entity\Db\Structure; use Application\Entity\Db\WfEtape; use Application\Provider\Privilege\Privileges; use Application\Service\Traits\WorkflowServiceAwareTrait; use Mission\Entity\Db\Mission; use Mission\Entity\Db\VolumeHoraireMission; use UnicaenPrivilege\Assertion\AbstractAssertion; Loading @@ -18,6 +21,85 @@ use Laminas\Permissions\Acl\Resource\ResourceInterface; */ class SaisieAssertion extends AbstractAssertion { use WorkflowServiceAwareTrait; /* ---- Routage général ---- */ public function __invoke(array $page) // gestion des visibilités de menus { return $this->assertPage($page); } protected function assertPage(array $page) { /* @var $role Role */ $role = $this->getRole(); /** @var Intervenant $intervenant */ $intervenant = $this->getMvcEvent()->getParam('intervenant'); if (!$role || !$intervenant) return false; return $this->assertWorkflow($intervenant,); } protected function assertController($controller, $action = null, $privilege = null) { /* @var $role Role */ $role = $this->getRole(); // Si le rôle n'est pas renseigné alors on s'en va... if (!$role instanceof Role) return false; // pareil si le rôle ne possède pas le privilège adéquat if ($privilege && !$role->hasPrivilege($privilege)) return false; // Si c'est bon alors on affine... $entity = $this->getMvcEvent()->getParam('intervenant'); if (!$entity) { $entity = $this->getMvcEvent()->getParam('mission'); } if (!$entity) { $entity = $this->getMvcEvent()->getParam('volumeHoraireMission'); } if (!$entity) { return false; } return $this->assertWorkflow($entity); } protected function assertWorkflow(Mission|Intervenant|VolumeHoraireMission $entity) { $codeEtape = WfEtape::CODE_MISSION_SAISIE; $structure = null; if ($entity instanceof Intervenant) { /** @var Role $role */ $role = $this->getRole(); $structure = $role->getStructure(); } if ($entity instanceof VolumeHoraireMission) { $entity = $entity->getMission(); } if ($entity instanceof Mission) { $structure = $entity->getStructure(); $entity = $entity->getIntervenant(); } $wfEtape = $this->getServiceWorkflow()->getEtape($codeEtape, $entity, $structure); if (!$wfEtape) return false; return $wfEtape->isAtteignable(); } protected function assertEntity(ResourceInterface $entity = null, $privilege = null) { Loading
module/Mission/src/Assertion/SuiviAssertion.php +78 −1 Changes for module/Mission/src/Assertion/SuiviAssertion.php: 78 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -5,7 +5,9 @@ namespace Mission\Assertion; use Application\Acl\Role; use Application\Entity\Db\Intervenant; use Application\Entity\Db\Structure; use Application\Entity\Db\WfEtape; use Application\Provider\Privilege\Privileges; use Application\Service\Traits\WorkflowServiceAwareTrait; use Mission\Entity\Db\Mission; use Mission\Entity\Db\VolumeHoraireMission; use UnicaenPrivilege\Assertion\AbstractAssertion; Loading @@ -19,6 +21,82 @@ use Laminas\Permissions\Acl\Resource\ResourceInterface; */ class SuiviAssertion extends AbstractAssertion { use WorkflowServiceAwareTrait; /* ---- Routage général ---- */ public function __invoke(array $page) // gestion des visibilités de menus { return $this->assertPage($page); } protected function assertPage(array $page) { /* @var $role Role */ $role = $this->getRole(); /** @var Intervenant $intervenant */ $intervenant = $this->getMvcEvent()->getParam('intervenant'); if (!$role || !$intervenant) return false; return $this->assertWorkflow($intervenant,); } protected function assertController($controller, $action = null, $privilege = null) { /* @var $role Role */ $role = $this->getRole(); // Si le rôle n'est pas renseigné alors on s'en va... if (!$role instanceof Role) return false; // pareil si le rôle ne possède pas le privilège adéquat if ($privilege && !$role->hasPrivilege($privilege)) return false; // Si c'est bon alors on affine... $entity = $this->getMvcEvent()->getParam('intervenant'); if (!$entity) { $entity = $this->getMvcEvent()->getParam('volumeHoraireMission'); } if (!$entity) { return false; } return $this->assertWorkflow($entity); } protected function assertWorkflow(Mission|Intervenant|VolumeHoraireMission $entity) { $codeEtape = WfEtape::CODE_MISSION_SAISIE_REALISE; $structure = null; if ($entity instanceof Intervenant) { /** @var Role $role */ $role = $this->getRole(); $structure = $role->getStructure(); } if ($entity instanceof VolumeHoraireMission) { $entity = $entity->getMission(); } if ($entity instanceof Mission) { $structure = $entity->getStructure(); $entity = $entity->getIntervenant(); } $wfEtape = $this->getServiceWorkflow()->getEtape($codeEtape, $entity, $structure); if (!$wfEtape) return false; return $wfEtape->isAtteignable(); } protected function assertEntity(ResourceInterface $entity = null, $privilege = null) { Loading Loading @@ -49,7 +127,6 @@ class SuiviAssertion extends AbstractAssertion protected function assertVolumeHoraireEdition(Role $role, VolumeHoraireMission $vhm) { return $this->asserts([ Loading