Commit 0754fca9 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout de la gestion des agents, spécificité, ... to be continued

parent d6ea6cd2
Loading
Loading
Loading
Loading
+144 −0
Original line number Diff line number Diff line
<?php

namespace Application;

use Application\Controller\Agent\AgentController;
use Application\Controller\Agent\AgentControllerFactory;
use Application\Form\Agent\AgentForm;
use Application\Form\Agent\AgentFormFactory;
use Application\Form\Agent\AgentHydrator;
use Application\Form\Agent\AgentHydratorFactory;
use Application\Provider\Privilege\AgentPrivileges;
use Application\Service\Agent\AgentService;
use Application\Service\Agent\AgentServiceFactory;
use UnicaenAuth\Guard\PrivilegeController;
use Zend\Mvc\Router\Http\Literal;
use Zend\Mvc\Router\Http\Segment;

return [
    'bjyauthorize' => [
        'guards' => [
            PrivilegeController::class => [
                [
                    'controller' => AgentController::class,
                    'action' => [
                        'index',
                        'afficher',
                    ],
                    'privileges' => [
                        AgentPrivileges::AFFICHER,
                    ],
                ],
                [
                    'controller' => AgentController::class,
                    'action' => [
                        'creer',
                    ],
                    'privileges' => [
                        AgentPrivileges::AJOUTER,
                    ],
                ],
                [
                    'controller' => AgentController::class,
                    'action' => [
                        'supprimer',
                    ],
                    'privileges' => [
                        AgentPrivileges::EFFACER,
                    ],
                ],
                [
                    'controller' => AgentController::class,
                    'action' => [
                        'modifier',
                    ],
                    'privileges' => [
                        AgentPrivileges::EDITER,
                    ],
                ],
            ],
        ],
    ],

    'router'          => [
        'routes' => [
            'agent' => [
                'type'  => Literal::class,
                'options' => [
                    'route'    => '/agent',
                    'defaults' => [
                        'controller' => AgentController::class,
                        'action'     => 'index',
                    ],
                ],
                'may_terminate' => true,
                'child_routes' => [
                    'afficher' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/afficher/:id',
                            'defaults' => [
                                'controller' => AgentController::class,
                                'action'     => 'afficher',
                            ],
                        ],
                    ],
                    'modifier' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/modifier/:id',
                            'defaults' => [
                                'controller' => AgentController::class,
                                'action'     => 'editer',
                            ],
                        ],
                    ],
                    'supprimer' => [
                        'type'  => Segment::class,
                        'options' => [
                            'route'    => '/supprimer/:id',
                            'defaults' => [
                                'controller' => AgentController::class,
                                'action'     => 'supprimer',
                            ],
                        ],
                    ],
                    'ajouter' => [
                        'type'  => Literal::class,
                        'options' => [
                            'route'    => '/ajouter',
                            'defaults' => [
                                'controller' => AgentController::class,
                                'action'     => 'ajouter',
                            ],
                        ],
                    ]
                ],
            ],
        ],
    ],

    'service_manager' => [
        'invokables' => [
        ],
        'factories' => [
            AgentService::class => AgentServiceFactory::class,
        ],
    ],
    'controllers'     => [
        'factories' => [
            AgentController::class => AgentControllerFactory::class,
        ],
    ],
    'form_elements' => [
        'factories' => [
            AgentForm::class => AgentFormFactory::class,
        ],
    ],
    'hydrators' => [
        'invokable' => [
            AgentHydrator::class => AgentHydratorFactory::class,
        ]
    ]

];
 No newline at end of file
+45 −10
Original line number Diff line number Diff line
@@ -6,14 +6,18 @@ use Application\Controller\FicheMetier\FicheMetierController;
use Application\Controller\FicheMetier\FicheMetierControllerFactory;
use Application\Controller\FicheMetier\FicheMetierTypeController;
use Application\Controller\FicheMetier\FicheMetierTypeControllerFactory;
use Application\Form\Agent\AgentForm;
use Application\Form\Agent\AgentFormFactory;
use Application\Form\Agent\AgentHydrator;
use Application\Form\Agent\AgentHydratorFactory;
use Application\Form\Agent\MissionComplementaireForm;
use Application\Form\Agent\MissionComplementaireFormFactory;
use Application\Form\Agent\MissionComplementaireHydrator;
use Application\Form\Agent\MissionComplementaireHydratorFactory;
use Application\Form\FicheMetier\AssocierAgentForm;
use Application\Form\FicheMetier\AssocierAgentFormFactory;
use Application\Form\FicheMetier\AssocierAgentHydrator;
use Application\Form\FicheMetier\AssocierAgentHydratorFactory;
use Application\Form\FicheMetier\AssocierMetierTypeForm;
use Application\Form\FicheMetier\AssocierMetierTypeFormFactory;
use Application\Form\FicheMetier\AssocierMetierTypeHydrator;
use Application\Form\FicheMetier\AssocierMetierTypeHydratorFactory;
use Application\Form\FicheMetier\FicheMetierCreationForm;
use Application\Form\FicheMetier\FicheMetierCreationFormFactory;
use Application\Form\FicheMetier\FicheMetierCreationHydrator;
@@ -30,10 +34,10 @@ use Application\Form\FicheMetierType\MissionsPrincipalesForm;
use Application\Form\FicheMetierType\MissionsPrincipalesFormFactory;
use Application\Form\FicheMetierType\MissionsPrincipalesHydrator;
use Application\Provider\Privilege\FicheMetierPrivileges;
use Application\Service\Agent\AgentService;
use Application\Service\Agent\AgentServiceFactory;
use Application\Service\FicheMetier\FicheMetierService;
use Application\Service\FicheMetier\FicheMetierServiceFactory;
use Application\View\Helper\PosteViewHelper;
use Application\View\Helper\SpecificitePosteViewHelper;
use UnicaenAuth\Guard\PrivilegeController;
use Zend\Mvc\Router\Http\Literal;
use Zend\Mvc\Router\Http\Segment;
@@ -61,6 +65,8 @@ return [
                        'editer-mission-complementaire',
                        'supprimer-mission-complementaire',
                        'editer-specificite-poste',
                        'associer-metier-type',
                        'associer-agent'
                    ],
                    'privileges' => [
                        FicheMetierPrivileges::AFFICHER,
@@ -137,6 +143,28 @@ return [
                        ],
                        'may_terminate' => true,
                    ],
                    'associer-agent' => [
                        'type' => Segment::class,
                        'options' => [
                            'route'    => '/associer-agent/:fiche',
                            'defaults' => [
                                'controller' => FicheMetierController::class,
                                'action'     => 'associer-agent',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                    'associer-metier-type' => [
                        'type' => Segment::class,
                        'options' => [
                            'route'    => '/associer-metier-type/:fiche',
                            'defaults' => [
                                'controller' => FicheMetierController::class,
                                'action'     => 'associer-metier-type',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                    'specificite' => [
                        'type'  => Segment::class,
                        'options' => [
@@ -353,7 +381,6 @@ return [
        ],
        'factories' => [
            FicheMetierService::class => FicheMetierServiceFactory::class,
            AgentService::class => AgentServiceFactory::class,
        ],
    ],
    'controllers'     => [
@@ -371,9 +398,10 @@ return [
            LibelleForm::class => LibelleFormFactory::class,
            MissionsPrincipalesForm::class => MissionsPrincipalesFormFactory::class,

            AgentForm::class => AgentFormFactory::class,
            MissionComplementaireForm::class => MissionComplementaireFormFactory::class,
            SpecificitePosteForm::class => SpecificitePosteFormFactory::class,
            AssocierMetierTypeForm::class => AssocierMetierTypeFormFactory::class,
            AssocierAgentForm::class => AssocierAgentFormFactory::class,
        ],
    ],
    'hydrators' => [
@@ -383,9 +411,16 @@ return [
        'factories' => [
            FicheMetierCreationHydrator::class => FicheMetierCreationHydratorFactory::class,
            LibelleHydrator::class => LibelleHydratorFactory::class,
            AgentHydrator::class => AgentHydratorFactory::class,
            MissionComplementaireHydrator::class => MissionComplementaireHydratorFactory::class,
            AssocierMetierTypeHydrator::class => AssocierMetierTypeHydratorFactory::class,
            AssocierAgentHydrator::class => AssocierAgentHydratorFactory::class,
        ]
    ]
    ],
    'view_helpers' => [
        'invokables' => [
            'specificitePoste' => SpecificitePosteViewHelper::class,
            'poste' => PosteViewHelper::class,
        ],
    ],

];
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ return [
                        'pages' => [
                            [
                                'label' => 'Les agents',
                                'route' => 'fiche-metier/agent',
                                'route' => 'agent',
                                'privileges' => FicheMetierPrivileges::AFFICHER,
                                'dropdown-header' => true,
                                'icon' => 'fas fa-angle-right'
+30 −0
Original line number Diff line number Diff line
<?php

namespace Application\Controller\Agent;

use Application\Service\Agent\AgentServiceAwareTrait;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class AgentController extends AbstractActionController
{
    use AgentServiceAwareTrait;

    public function indexAction()
    {
        $agents = $this->getAgentService()->getAgents();
        return  new ViewModel([
            'agents' => $agents,
        ]);
    }

    public function afficherAction() {

        $agentId = $this->params()->fromRoute('id');
        $agent = $this->getAgentService()->getAgent($agentId);

        return new ViewModel([
            'agent' => $agent,
        ]);
    }
}
 No newline at end of file
+20 −0
Original line number Diff line number Diff line
<?php

namespace Application\Controller\Agent;

use Application\Service\Agent\AgentService;
use Zend\Mvc\Controller\ControllerManager;

class AgentControllerFactory {

    public function __invoke(ControllerManager $controllerManager)
    {
        /** @var AgentService $agentService */
        $agentService = $controllerManager->getServiceLocator()->get(AgentService::class);

        /** @var AgentController $controller */
        $controller = new AgentController();
        $controller->setAgentService($agentService);
        return $controller;
    }
}
 No newline at end of file
Loading