Commit 8cb83a18 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Menu 'Mes structures' et privileges

parent cd5aa8cb
Loading
Loading
Loading
Loading
+28 −0
Changes for module/Formation/config/merged/administration.config.php: 28 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ use UnicaenParametre\Provider\Privilege\ParametrecategoriePrivileges;
use UnicaenPrivilege\Guard\PrivilegeController;
use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
use UnicaenPrivilege\Provider\Privilege\PrivilegePrivileges;
use UnicaenRenderer\Controller\IndexController;
use UnicaenRenderer\Provider\Privilege\DocumenttemplatePrivileges;

@@ -25,6 +26,15 @@ return [
                        ParametrecategoriePrivileges::PARAMETRECATEGORIE_INDEX,
                    ],
                ],
                [
                    'controller' => AdministrationController::class,
                    'action' => [
                        'privilege',
                    ],
                    'privileges' => [
                        PrivilegePrivileges::PRIVILEGE_AFFECTER,
                    ],
                ],
                [
                    'controller' => AdministrationController::class,
                    'action' => [
@@ -59,6 +69,13 @@ return [
                                'resource' => ParametrecategoriePrivileges::getResourceId(ParametrecategoriePrivileges::PARAMETRECATEGORIE_INDEX),
                                'icon' => 'fas fa-angle-right',
                            ],
                            'privilege' => [
                                'order' => 1100,
                                'label' => 'Privilèges',
                                'route' => 'formation/administration/privilege',
                                'resource' => PrivilegePrivileges::getResourceId(PrivilegePrivileges::PRIVILEGE_AFFECTER),
                                'icon' => 'fas fa-angle-right',
                            ],
                            'template' => [
                                'order' => 2000,
                                'label' => 'Templates et macros',
@@ -98,6 +115,17 @@ return [
                                    ],
                                ],
                            ],
                            'privilege' => [
                                'type'  => Segment::class,
                                'options' => [
                                    /** @see AdministrationController::privilegeAction() */
                                    'route'    => '/privilege',
                                    'defaults' => [
                                        'controller' => AdministrationController::class,
                                        'action'     => 'privilege',
                                    ],
                                ],
                            ],
                            'template' => [
                                'type'  => Segment::class,
                                'options' => [
+39 −7
Changes for module/Formation/config/merged/structure.config.php: 39 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ namespace Formation;
use Formation\Controller\StructureController;
use Formation\Controller\StructureControllerFactory;
use Formation\Provider\Privilege\FormationPrivileges;
use Formation\Provider\Privilege\PlanformationPrivileges;
use UnicaenPrivilege\Guard\PrivilegeController;
use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
@@ -23,6 +24,15 @@ return [
                        FormationPrivileges::FORMATION_MODIFIER,
                    ],
                ],
                [
                    'controller' => StructureController::class,
                    'action' => [
                        'afficher',
                    ],
                    'privileges' => [ //TODO privileges
                        PlanformationPrivileges::PLANFORMATION_COURANT,
                    ],
                ],
            ],
        ],
    ],
@@ -31,11 +41,21 @@ return [
        'formation' => [
            'home' => [
                'pages' => [
                    'mes-structures' => [
                        'order' => 100,
                        'label' => 'Mes structures',
                        'route' => 'formation/structure',
//                        'route' => 'gestion',
                        'resource' => PrivilegeController::getResourceId(StructureController::class, 'afficher'),
                        'dropdown-header' => true,
                        'pages' => [],
                    ],
                    'gestion-formation' => [
                        'pages' => [

                            [
                                'label' => 'Gestion des ressources',
                                'route' => 'formation/structure',
                                'route' => 'formation/structure/index',
                                'resource' =>
                                    PrivilegeController::getResourceId(StructureController::class, 'index'),

@@ -45,12 +65,13 @@ return [
                            'structure' => [
                                'order' => 420,
                                'label' => 'Structure',
                                'route' => 'formation/structure',
                                'route' => 'formation/structure-index',
                                'resource' => PrivilegeController::getResourceId(StructureController::class, 'index'),
                                'icon' => 'fas fa-angle-right',
                            ],
                        ],
                    ],

                ],
            ],
        ],
@@ -60,26 +81,37 @@ return [
        'routes' => [
            'formation' => [
                'child_routes' => [
                    'structure' => [
                    'structure-index' => [
                        'type'  => Literal::class,
                        'options' => [
                            'route'    => '/structure',
                            'route'    => '/structure-index',
                            'defaults' => [
                                'controller' => StructureController::class,
                                'action'     => 'index',
                            ],
                        ],
                        'may_terminate' => true,
                        'child_routes' => [
                            'afficher' => [
                    ],
                    'structure' => [
                        'type'  => Segment::class,
                        'options' => [
                                    'route'    => '/afficher/:structure',
                            'route'    => '/structure[/:structure]',
                            'defaults' => [
                                'controller' => StructureController::class,
                                'action'     => 'afficher',
                            ],
                        ],
                        'may_terminate' => true,
                        'child_routes' => [
                            'index' => [
                                'type'  => Segment::class,
                                'options' => [
                                    'route'    => '/index',
                                    'defaults' => [
                                        'controller' => StructureController::class,
                                        'action'     => 'index',
                                    ],
                                ],
                            ],
                        ],
                    ],
+16 −0
Changes for module/Formation/src/Formation/Controller/AdministrationController.php: 16 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -6,12 +6,16 @@ use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use UnicaenParametre\Service\Categorie\CategorieServiceAwareTrait;
use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait;
use UnicaenPrivilege\Service\Privilege\PrivilegeServiceAwareTrait;
use UnicaenRenderer\Service\Template\TemplateServiceAwareTrait;
use UnicaenUtilisateur\Service\Role\RoleServiceAwareTrait;

class AdministrationController extends AbstractActionController
{
    use CategorieServiceAwareTrait;
    use ParametreServiceAwareTrait;
    use PrivilegeServiceAwareTrait;
    use RoleServiceAwareTrait;
    use TemplateServiceAwareTrait;

    public function parametreAction() : ViewModel
@@ -30,6 +34,18 @@ class AdministrationController extends AbstractActionController

    public function privilegeAction() : ViewModel
    {
        $namespace = 'Formation\Provider\Privilege';

        $roles = $this->roleService->findAll();
        $privilegesByCategorie = $this->privilegeService->listByCategorie($namespace);

        $vm = new ViewModel([
            'roles' => $roles,
            'privilegesByCategorie' => $privilegesByCategorie,
            'gestion' => 'off',
        ]);
        $vm->setTemplate('unicaen-privilege/privilege/index');
        return $vm;

    }

+8 −0
Changes for module/Formation/src/Formation/Controller/AdministrationControllerFactory.php: 8 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -7,7 +7,9 @@ use Psr\Container\ContainerInterface;
use Psr\Container\NotFoundExceptionInterface;
use UnicaenParametre\Service\Categorie\CategorieService;
use UnicaenParametre\Service\Parametre\ParametreService;
use UnicaenPrivilege\Service\Privilege\PrivilegeService;
use UnicaenRenderer\Service\Template\TemplateService;
use UnicaenUtilisateur\Service\Role\RoleService;

class AdministrationControllerFactory {

@@ -22,15 +24,21 @@ class AdministrationControllerFactory {
        /**
         * @var CategorieService $categorieService
         * @var ParametreService $parametreService
         * @var PrivilegeService $privilegeService
         * @var RoleService $roleService
         * @var TemplateService $templateService
         */
        $categorieService = $container->get(CategorieService::class);
        $parametreService = $container->get(ParametreService::class);
        $privilegeService = $container->get(PrivilegeService::class);
        $roleService = $container->get(RoleService::class);
        $templateService = $container->get(TemplateService::class);

        $controller = new AdministrationController();
        $controller->setCategorieService($categorieService);
        $controller->setParametreService($parametreService);
        $controller->setPrivilegeService($privilegeService);
        $controller->setRoleService($roleService);
        $controller->setTemplateService($templateService);
        return $controller;
    }
+10 −0
Changes for module/Formation/src/Formation/Controller/StructureController.php: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use Structure\Entity\Db\StructureAgentForce;
use Structure\Service\Structure\StructureServiceAwareTrait;
use UnicaenUtilisateur\Service\User\UserServiceAwareTrait;

class StructureController extends AbstractActionController
{
@@ -18,6 +19,7 @@ class StructureController extends AbstractActionController
    use DemandeExterneServiceAwareTrait;
    use FormationInstanceInscritServiceAwareTrait;
    use StructureServiceAwareTrait;
    use UserServiceAwareTrait;

    public function indexAction() : ViewModel
    {
@@ -40,6 +42,12 @@ class StructureController extends AbstractActionController
    {
        /**  Récupération du sous-arbre des structures */
        $structure = $this->getStructureService()->getRequestedStructure($this);

        $role = $this->getUserService()->getConnectedRole();
        $utilisateur = $this->getUserService()->getConnectedUser();
        $selecteur = $this->getStructureService()->getStructuresByCurrentRole($utilisateur, $role);
        if (!empty($selecteur) AND $structure===null) $structure = $selecteur[0];

        $structures = $this->getStructureService()->getStructuresFilles($structure);
        $structures[] =  $structure;

@@ -56,6 +64,8 @@ class StructureController extends AbstractActionController
        $inscriptionsValidees = $this->getFormationInstanceInscritService()->getInscriptionsValideesByAgents($allAgents, Formation::getAnnee());

        return new ViewModel([
            'selecteur' => $selecteur,

            'structure' => $structure,
            'agents' => $allAgents,

Loading