Loading module/Application/config/merged/agent.config.php +1 −1 Changes for module/Application/config/merged/agent.config.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -14,8 +14,8 @@ use Application\Form\Agent\AgentHydratorFactory; use Application\Provider\Privilege\AgentPrivileges; use Application\Service\Agent\AgentService; use Application\Service\Agent\AgentServiceFactory; use Application\View\Helper\AgentViewHelper; use Application\View\Helper\AgentStatutViewHelper; use Application\View\Helper\AgentViewHelper; use UnicaenAuth\Guard\PrivilegeController; use Zend\Mvc\Router\Http\Literal; use Zend\Mvc\Router\Http\Segment; Loading module/Application/config/merged/mission-specifique.config.php 0 → 100644 +142 −0 Changes for module/Application/config/merged/mission-specifique.config.php: 142 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application; use Application\Controller\MissionSpecifique\MissionSpecifiqueController; use Application\Controller\MissionSpecifique\MissionSpecifiqueControllerFactory; use Application\Form\AgentMissionSpecifique\AgentMissionSpecifiqueForm; use Application\Form\AgentMissionSpecifique\AgentMissionSpecifiqueFormFactory; use Application\Form\AgentMissionSpecifique\AgentMissionSpecifiqueHydrator; use Application\Form\AgentMissionSpecifique\AgentMissionSpecifiqueHydratorFactory; use Application\Provider\Privilege\AgentPrivileges; use Application\Service\MissionSpecifique\MissionSpecifiqueService; use Application\Service\MissionSpecifique\MissionSpecifiqueServiceFactory; use UnicaenAuth\Guard\PrivilegeController; use Zend\Mvc\Router\Http\Literal; use Zend\Mvc\Router\Http\Segment; return [ 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ [ 'controller' => MissionSpecifiqueController::class, 'action' => [ 'affectation', ], 'privileges' => [ AgentPrivileges::AFFICHER, ], ], [ 'controller' => MissionSpecifiqueController::class, 'action' => [ 'ajouter', 'editer', 'historiser', 'restaurer', 'detruire', ], 'privileges' => [ AgentPrivileges::EDITER, ], ], ], ], ], 'router' => [ 'routes' => [ 'agent-mission-specifique' => [ 'type' => Literal::class, 'options' => [ 'route' => '/agent-mission-specifique', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'affectation', ], ], 'may_terminate' => true, 'child_routes' => [ 'ajouter' => [ 'type' => Literal::class, 'options' => [ 'route' => '/ajouter', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'ajouter', ], ], 'may_terminate' => true, ], 'editer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/editer/:affectation', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'editer', ], ], 'may_terminate' => true, ], 'historiser' => [ 'type' => Segment::class, 'options' => [ 'route' => '/historiser/:affectation', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'historiser', ], ], 'may_terminate' => true, ], 'restaurer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/restaurer/:affectation', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'restaurer', ], ], 'may_terminate' => true, ], 'detruire' => [ 'type' => Segment::class, 'options' => [ 'route' => '/detruire/:affectation', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'detruire', ], ], 'may_terminate' => true, ], ], ], ], ], 'service_manager' => [ 'factories' => [ MissionSpecifiqueService::class => MissionSpecifiqueServiceFactory::class, ], ], 'controllers' => [ 'factories' => [ MissionSpecifiqueController::class => MissionSpecifiqueControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ AgentMissionSpecifiqueForm::class => AgentMissionSpecifiqueFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ AgentMissionSpecifiqueHydrator::class => AgentMissionSpecifiqueHydratorFactory::class, ], ] ]; No newline at end of file module/Application/config/merged/structure.config.php +21 −2 Changes for module/Application/config/merged/structure.config.php: 21 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ namespace Application; use Application\Assertion\EditionStructureAssertion; use Application\Assertion\EditionStructureAssertionFactory; use Application\Controller\Structure\StructureController; use Application\Controller\Structure\StructureControllerFactory; use Application\Form\Structure\StructureForm; Loading @@ -11,6 +13,7 @@ use Application\Provider\Privilege\StructurePrivileges; use Application\Service\Structure\StructureService; use Application\Service\Structure\StructureServiceFactory; use UnicaenAuth\Guard\PrivilegeController; use UnicaenAuth\Provider\Rule\PrivilegeRuleProvider; use Zend\Mvc\Router\Http\Literal; use Zend\Mvc\Router\Http\Segment; Loading Loading @@ -42,8 +45,23 @@ return [ 'action' => [ 'editer-description' ], 'privileges' => [ StructurePrivileges::EDITER, 'assertion' => EditionStructureAssertion::class, 'privileges' => StructurePrivileges::EDITER, ], ], ], 'resource_providers' => [ 'BjyAuthorize\Provider\Resource\Config' => [ 'structure' => [], ], ], 'rule_providers' => [ PrivilegeRuleProvider::class => [ 'allow' => [ [ 'privileges' => StructurePrivileges::EDITER, //'resources' => ['structure'], 'assertion' => EditionStructureAssertion::class, ], ], ], Loading Loading @@ -106,6 +124,7 @@ return [ 'service_manager' => [ 'factories' => [ EditionStructureAssertion::class => EditionStructureAssertionFactory::class, StructureService::class => StructureServiceFactory::class, ], ], Loading module/Application/src/Application/Assertion/EditionStructureAssertion.php 0 → 100644 +44 −0 Changes for module/Application/src/Application/Assertion/EditionStructureAssertion.php: 44 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application\Assertion; use Application\Controller\Structure\StructureController; use Application\Entity\Db\Structure; use UnicaenAuth\Assertion\AbstractAssertion; use Utilisateur\Entity\Db\Role; use Utilisateur\Service\User\UserServiceAwareTrait; use Zend\Permissions\Acl\Resource\ResourceInterface; class EditionStructureAssertion extends AbstractAssertion { use UserServiceAwareTrait; protected function assertEntity(ResourceInterface $entity = null, $privilege = null) { if ($entity instanceof Structure) { return true; } return false; } protected function assertController($controller, $action = null, $privilege = null) { $role = $this->getUserService()->getConnectedRole(); if ($controller === StructureController::class) { if ($role->getRoleId() === Role::ADMIN_FONC OR $role->getRoleId() === Role::ADMIN_TECH) { return false; } switch($action) { case 'editer-description' : if ($role->getRoleId() === Role::GESTIONNAIRE) { return true; } return false; default: return true; } } return false; } } No newline at end of file module/Application/src/Application/Assertion/EditionStructureAssertionFactory.php 0 → 100644 +23 −0 Changes for module/Application/src/Application/Assertion/EditionStructureAssertionFactory.php: 23 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application\Assertion; use Utilisateur\Service\User\UserService; use Zend\ServiceManager\ServiceLocatorInterface; class EditionStructureAssertionFactory { public function __invoke(ServiceLocatorInterface $serviceLocator) { /** * @var UserService $userService */ $userService = $serviceLocator->get(UserService::class); /** @var EditionStructureAssertion $assertion */ $assertion = new EditionStructureAssertion(); $assertion->setUserService($userService); return $assertion; } } No newline at end of file Loading
module/Application/config/merged/agent.config.php +1 −1 Changes for module/Application/config/merged/agent.config.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -14,8 +14,8 @@ use Application\Form\Agent\AgentHydratorFactory; use Application\Provider\Privilege\AgentPrivileges; use Application\Service\Agent\AgentService; use Application\Service\Agent\AgentServiceFactory; use Application\View\Helper\AgentViewHelper; use Application\View\Helper\AgentStatutViewHelper; use Application\View\Helper\AgentViewHelper; use UnicaenAuth\Guard\PrivilegeController; use Zend\Mvc\Router\Http\Literal; use Zend\Mvc\Router\Http\Segment; Loading
module/Application/config/merged/mission-specifique.config.php 0 → 100644 +142 −0 Changes for module/Application/config/merged/mission-specifique.config.php: 142 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application; use Application\Controller\MissionSpecifique\MissionSpecifiqueController; use Application\Controller\MissionSpecifique\MissionSpecifiqueControllerFactory; use Application\Form\AgentMissionSpecifique\AgentMissionSpecifiqueForm; use Application\Form\AgentMissionSpecifique\AgentMissionSpecifiqueFormFactory; use Application\Form\AgentMissionSpecifique\AgentMissionSpecifiqueHydrator; use Application\Form\AgentMissionSpecifique\AgentMissionSpecifiqueHydratorFactory; use Application\Provider\Privilege\AgentPrivileges; use Application\Service\MissionSpecifique\MissionSpecifiqueService; use Application\Service\MissionSpecifique\MissionSpecifiqueServiceFactory; use UnicaenAuth\Guard\PrivilegeController; use Zend\Mvc\Router\Http\Literal; use Zend\Mvc\Router\Http\Segment; return [ 'bjyauthorize' => [ 'guards' => [ PrivilegeController::class => [ [ 'controller' => MissionSpecifiqueController::class, 'action' => [ 'affectation', ], 'privileges' => [ AgentPrivileges::AFFICHER, ], ], [ 'controller' => MissionSpecifiqueController::class, 'action' => [ 'ajouter', 'editer', 'historiser', 'restaurer', 'detruire', ], 'privileges' => [ AgentPrivileges::EDITER, ], ], ], ], ], 'router' => [ 'routes' => [ 'agent-mission-specifique' => [ 'type' => Literal::class, 'options' => [ 'route' => '/agent-mission-specifique', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'affectation', ], ], 'may_terminate' => true, 'child_routes' => [ 'ajouter' => [ 'type' => Literal::class, 'options' => [ 'route' => '/ajouter', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'ajouter', ], ], 'may_terminate' => true, ], 'editer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/editer/:affectation', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'editer', ], ], 'may_terminate' => true, ], 'historiser' => [ 'type' => Segment::class, 'options' => [ 'route' => '/historiser/:affectation', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'historiser', ], ], 'may_terminate' => true, ], 'restaurer' => [ 'type' => Segment::class, 'options' => [ 'route' => '/restaurer/:affectation', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'restaurer', ], ], 'may_terminate' => true, ], 'detruire' => [ 'type' => Segment::class, 'options' => [ 'route' => '/detruire/:affectation', 'defaults' => [ 'controller' => MissionSpecifiqueController::class, 'action' => 'detruire', ], ], 'may_terminate' => true, ], ], ], ], ], 'service_manager' => [ 'factories' => [ MissionSpecifiqueService::class => MissionSpecifiqueServiceFactory::class, ], ], 'controllers' => [ 'factories' => [ MissionSpecifiqueController::class => MissionSpecifiqueControllerFactory::class, ], ], 'form_elements' => [ 'factories' => [ AgentMissionSpecifiqueForm::class => AgentMissionSpecifiqueFormFactory::class, ], ], 'hydrators' => [ 'factories' => [ AgentMissionSpecifiqueHydrator::class => AgentMissionSpecifiqueHydratorFactory::class, ], ] ]; No newline at end of file
module/Application/config/merged/structure.config.php +21 −2 Changes for module/Application/config/merged/structure.config.php: 21 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ namespace Application; use Application\Assertion\EditionStructureAssertion; use Application\Assertion\EditionStructureAssertionFactory; use Application\Controller\Structure\StructureController; use Application\Controller\Structure\StructureControllerFactory; use Application\Form\Structure\StructureForm; Loading @@ -11,6 +13,7 @@ use Application\Provider\Privilege\StructurePrivileges; use Application\Service\Structure\StructureService; use Application\Service\Structure\StructureServiceFactory; use UnicaenAuth\Guard\PrivilegeController; use UnicaenAuth\Provider\Rule\PrivilegeRuleProvider; use Zend\Mvc\Router\Http\Literal; use Zend\Mvc\Router\Http\Segment; Loading Loading @@ -42,8 +45,23 @@ return [ 'action' => [ 'editer-description' ], 'privileges' => [ StructurePrivileges::EDITER, 'assertion' => EditionStructureAssertion::class, 'privileges' => StructurePrivileges::EDITER, ], ], ], 'resource_providers' => [ 'BjyAuthorize\Provider\Resource\Config' => [ 'structure' => [], ], ], 'rule_providers' => [ PrivilegeRuleProvider::class => [ 'allow' => [ [ 'privileges' => StructurePrivileges::EDITER, //'resources' => ['structure'], 'assertion' => EditionStructureAssertion::class, ], ], ], Loading Loading @@ -106,6 +124,7 @@ return [ 'service_manager' => [ 'factories' => [ EditionStructureAssertion::class => EditionStructureAssertionFactory::class, StructureService::class => StructureServiceFactory::class, ], ], Loading
module/Application/src/Application/Assertion/EditionStructureAssertion.php 0 → 100644 +44 −0 Changes for module/Application/src/Application/Assertion/EditionStructureAssertion.php: 44 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application\Assertion; use Application\Controller\Structure\StructureController; use Application\Entity\Db\Structure; use UnicaenAuth\Assertion\AbstractAssertion; use Utilisateur\Entity\Db\Role; use Utilisateur\Service\User\UserServiceAwareTrait; use Zend\Permissions\Acl\Resource\ResourceInterface; class EditionStructureAssertion extends AbstractAssertion { use UserServiceAwareTrait; protected function assertEntity(ResourceInterface $entity = null, $privilege = null) { if ($entity instanceof Structure) { return true; } return false; } protected function assertController($controller, $action = null, $privilege = null) { $role = $this->getUserService()->getConnectedRole(); if ($controller === StructureController::class) { if ($role->getRoleId() === Role::ADMIN_FONC OR $role->getRoleId() === Role::ADMIN_TECH) { return false; } switch($action) { case 'editer-description' : if ($role->getRoleId() === Role::GESTIONNAIRE) { return true; } return false; default: return true; } } return false; } } No newline at end of file
module/Application/src/Application/Assertion/EditionStructureAssertionFactory.php 0 → 100644 +23 −0 Changes for module/Application/src/Application/Assertion/EditionStructureAssertionFactory.php: 23 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Application\Assertion; use Utilisateur\Service\User\UserService; use Zend\ServiceManager\ServiceLocatorInterface; class EditionStructureAssertionFactory { public function __invoke(ServiceLocatorInterface $serviceLocator) { /** * @var UserService $userService */ $userService = $serviceLocator->get(UserService::class); /** @var EditionStructureAssertion $assertion */ $assertion = new EditionStructureAssertion(); $assertion->setUserService($userService); return $assertion; } } No newline at end of file