Commit 4b8e4a19 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Séparation privilege

parent b4b39af8
Loading
Loading
Loading
Loading
+100 −0
Original line number Diff line number Diff line
<?php

use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
use UnicaenIndicateur\Controller\CategorieController;
use UnicaenIndicateur\Controller\CategorieControllerFactory;
use UnicaenIndicateur\Form\Categorie\CategorieForm;
use UnicaenIndicateur\Form\Categorie\CategorieFormFactory;
use UnicaenIndicateur\Form\Categorie\CategorieHydrator;
use UnicaenIndicateur\Form\Categorie\CategorieHydratorFactory;
use UnicaenIndicateur\Provider\Privilege\IndicateurPrivileges;
use UnicaenIndicateur\Service\Categorie\CategorieService;
use UnicaenIndicateur\Service\Categorie\CategorieServiceFactory;
use UnicaenPrivilege\Guard\PrivilegeController;

return [
    'bjyauthorize' => [
        'guards' => [
            PrivilegeController::class => [
                [
                    'controller' => CategorieController::class,
                    'action' => [
                        'index',
                        'ajouter',
                        'modifier',
                    ],
                    'privileges' => [
                        IndicateurPrivileges::EDITER_INDICATEUR,
                    ],
                ],
                [
                    'controller' => CategorieController::class,
                    'action' => [
                        'afficher',
                    ],
                    'privileges' => [
                        IndicateurPrivileges::AFFICHER_INDICATEUR,
                    ],
                ],
                [
                    'controller' => CategorieController::class,
                    'action' => [
                        'supprimer',
                    ],
                    'privileges' => [
                        IndicateurPrivileges::DETRUIRE_INDICATEUR,
                    ],
                ],
            ],
        ],
    ],

    'router' => [
        'routes' => [
            'indicateur' => [
                'type' => Literal::class,
                'options' => [
                    'route' => '/indicateur',
                ],
                'may_terminate' => false,
                'child_routes' => [
                    'categorie' => [
                        'type' => Literal::class,
                        'options' => [
                            'route' => '/categorie',
                            'defaults' => [
                                /** @see CategorieController::indexAction() */
                                'controller' => CategorieController::class,
                                'action' => 'index',
                            ],
                        ],
                        'may_terminate' => true,
                        'child_routes' => [],
                    ],
                ],
            ],
        ],
    ],

    'service_manager' => [
        'factories' => [
            CategorieService::class => CategorieServiceFactory::class,
        ],
    ],
    'controllers' => [
        'factories' => [
            CategorieController::class => CategorieControllerFactory::class,
        ],
    ],
    'form_elements' => [
        'factories' => [
            CategorieForm::class => CategorieFormFactory::class,
        ],
    ],
    'hydrators' => [
        'factories' => [
            CategorieHydrator::class => CategorieHydratorFactory::class,
        ],
    ],
];
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ return [
                        'abonnement'
                    ],
                    'privileges' => [
                        IndicateurPrivileges::AFFICHER_INDICATEUR,
                        IndicateurPrivileges::INDICATEUR_MES_INDICATEURS,
                    ],
                ],
            ],
+3 −0
Original line number Diff line number Diff line
<?php

use UnicaenIndicateur\Controller\IndexController;
use UnicaenPrivilege\Guard\PrivilegeController;

return [
    'navigation'      => [
        'default' => [
+2 −1
Original line number Diff line number Diff line
@@ -4,7 +4,8 @@ INSERT INTO unicaen_privilege_privilege(CATEGORIE_ID, CODE, LIBELLE, ORDRE)
WITH d(code, lib, ordre) AS (
    SELECT 'afficher_indicateur', 'Afficher un indicateur', 1   UNION
    SELECT 'editer_indicateur', 'Éditer un indicateur', 2   UNION
    SELECT 'detruire_indicateur', 'Effacer un indicateur', 3
    SELECT 'detruire_indicateur', 'Effacer un indicateur', 3 UNION
    SELECT 'indicateur_mes_indicateurs', 'Affichage du menu - Mes Indicateurs -', 100
)
SELECT cp.id, d.code, d.lib, d.ordre
FROM d
+23 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenIndicateur\Controller;

use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use UnicaenIndicateur\Form\Categorie\CategorieFormAwareTrait;
use UnicaenIndicateur\Service\Categorie\CategorieServiceAwareTrait;

class CategorieController extends AbstractActionController
{
    use CategorieServiceAwareTrait;
    use CategorieFormAwareTrait;

    public function indexAction(): ViewModel
    {
        $categories  = $this->getCategorieService()->getCategories();

        return new ViewModel([
            'categories' => $categories,
        ]);
    }
}
 No newline at end of file
Loading