Commit 1856c309 authored by David Surville's avatar David Surville
Browse files

Merge branch '5.x' into release/8.0-perimetres

 Conflicts:
	.gitlab-ci.yml
	config/unicaen-privilege.global.php.dist
	data/sql/schema_postgresql.sql
	view/unicaen-privilege/privilege/index.phtml

 Il semble que vous validiez une fusion.
 Si ce n'est pas le cas, veuillez lancer
	git update-ref -d MERGE_HEAD
 et essayez à nouveau.

 Veuillez saisir le message de validation pour vos modifications. Les lignes
 commençant par '#' seront ignorées, et un message vide abandonne la validation.

 Sur la branche release/8.0-perimetres
 Tous les conflits sont réglés mais la fusion n'est pas terminée.

 Modifications qui seront validées :
	modifié :         .gitlab-ci.yml
	modifié :         composer.json
	nouveau fichier : config/merged/perimetre.config.php
	modifié :         config/merged/privilege.config.php
	nouveau fichier : config/unicaen-perimetre.global.php.dist
	modifié :         config/unicaen-privilege.global.php.dist
	supprimé :        data/sql/data.sql
	supprimé :        data/sql/schema_oracle.sql
	supprimé :        data/sql/schema_postgresql.sql
	modifié :         src/UnicaenPrivilege/Assertion/AbstractAssertion.php
	nouveau fichier : src/UnicaenPrivilege/Assertion/Perimetre/AbstractPerimetreAssertion.php
	nouveau fichier : src/UnicaenPrivilege/Assertion/Perimetre/AbstractPerimetreAssertionFactory.php
	nouveau fichier : src/UnicaenPrivilege/Controller/PerimetreCategorieController.php
	nouveau fichier : src/UnicaenPrivilege/Controller/PerimetreCategorieControllerFactory.php
	nouveau fichier : src/UnicaenPrivilege/Controller/PerimetreController.php
	nouveau fichier : src/UnicaenPrivilege/Controller/PerimetreControllerFactory.php
	modifié :         src/UnicaenPrivilege/Controller/PrivilegeCategorieController.php
	modifié :         src/UnicaenPrivilege/Controller/PrivilegeCategorieControllerFactory.php
	modifié :         src/UnicaenPrivilege/Controller/PrivilegeController.php
	modifié :         src/UnicaenPrivilege/Controller/PrivilegeControllerFactory.php
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/AbstractPerimetre.php
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/AbstractPerimetreCategorie.php
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/AbstractPerimetreUserRole.php
	modifié :         src/UnicaenPrivilege/Entity/Db/AbstractPrivilege.php
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/Mapping/UnicaenPrivilege.Entity.Db.Perimetre.dcm.xml
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/Mapping/UnicaenPrivilege.Entity.Db.PerimetreCategorie.dcm.xml
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/Mapping/UnicaenPrivilege.Entity.Db.PerimetreUserRole.dcm.xml
	modifié :         src/UnicaenPrivilege/Entity/Db/Mapping/UnicaenPrivilege.Entity.Db.Privilege.dcm.xml
	modifié :         src/UnicaenPrivilege/Entity/Db/Mapping/UnicaenPrivilege.Entity.Db.PrivilegeCategorie.dcm.xml
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/Perimetre.php
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/PerimetreCategorie.php
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/PerimetreCategorieInterface.php
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/PerimetreInterface.php
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/PerimetreUserRole.php
	nouveau fichier : src/UnicaenPrivilege/Entity/Db/PerimetreUserRoleInterface.php
	modifié :         src/UnicaenPrivilege/Entity/Db/PrivilegeInterface.php
	supprimé :        src/UnicaenPrivilege/Entity/Db/Repository/PrivilegeRepository.php
	nouveau fichier : src/UnicaenPrivilege/Form/Perimetre/CategorieForm.php
	nouveau fichier : src/UnicaenPrivilege/Form/Perimetre/CategorieFormAwareTrait.php
	nouveau fichier : src/UnicaenPrivilege/Form/Perimetre/CategorieFormFactory.php
	nouveau fichier : src/UnicaenPrivilege/Form/Perimetre/PerimetreForm.php
	nouveau fichier : src/UnicaenPrivilege/Form/Perimetre/PerimetreFormAwareTrait.php
	nouveau fichier : src/UnicaenPrivilege/Form/Perimetre/PerimetreFormFactory.php
	modifié :         src/UnicaenPrivilege/Form/Privilege/CategorieFiltreForm.php
	modifié :         src/UnicaenPrivilege/Form/Privilege/CategorieFiltreFormFactory.php
	modifié :         src/UnicaenPrivilege/Form/Privilege/CategorieFormFactory.php
	modifié :         src/UnicaenPrivilege/Form/Privilege/PrivilegeForm.php
	modifié :         src/UnicaenPrivilege/Form/Privilege/PrivilegeFormFactory.php
	modifié :         src/UnicaenPrivilege/Guard/PrivilegeController.php
	modifié :         src/UnicaenPrivilege/Guard/PrivilegeControllerFactory.php
	modifié :         src/UnicaenPrivilege/Guard/PrivilegeRouteFactory.php
	nouveau fichier : src/UnicaenPrivilege/Provider/Perimetre/PerimetreProviderAwareTrait.php
	nouveau fichier : src/UnicaenPrivilege/Provider/Perimetre/PerimetreProviderInterface.php
	nouveau fichier : src/UnicaenPrivilege/Provider/Privilege/PerimetrePrivileges.php
	modifié :         src/UnicaenPrivilege/Provider/Privilege/PrivilegeProviderAwareTrait.php
	modifié :         src/UnicaenPrivilege/Provider/Rule/PrivilegeRuleProviderFactory.php
	modifié :         src/UnicaenPrivilege/Service/AuthorizeServiceFactory.php
	nouveau fichier : src/UnicaenPrivilege/Service/Perimetre/PerimetreCategorieService.php
	nouveau fichier : src/UnicaenPrivilege/Service/Perimetre/PerimetreCategorieServiceAwareTrait.php
	nouveau fichier : src/UnicaenPrivilege/Service/Perimetre/PerimetreCategorieServiceFactory.php
	nouveau fichier : src/UnicaenPrivilege/Service/Perimetre/PerimetreService.php
	nouveau fichier : src/UnicaenPrivilege/Service/Perimetre/PerimetreServiceAwareTrait.php
	nouveau fichier : src/UnicaenPrivilege/Service/Perimetre/PerimetreServiceFactory.php
	modifié :         src/UnicaenPrivilege/Service/Privilege/PrivilegeCategorieServiceFactory.php
	modifié :         src/UnicaenPrivilege/Service/Privilege/PrivilegeService.php
	modifié :         src/UnicaenPrivilege/Service/Privilege/PrivilegeServiceFactory.php
	nouveau fichier : src/UnicaenPrivilege/View/Helper/Perimetre/PerimetreCategorieViewHelper.php
	renommé :         src/UnicaenPrivilege/View/Privilege/PrivilegeViewHelper.php -> src/UnicaenPrivilege/View/Helper/Privilege/PrivilegeViewHelper.php
	nouveau fichier : view/unicaen-privilege/css/default.css
	nouveau fichier : view/unicaen-privilege/perimetre-categorie/activer.phtml
	nouveau fichier : view/unicaen-privilege/perimetre-categorie/gerer.phtml
	nouveau fichier : view/unicaen-privilege/perimetre-categorie/index.phtml
	nouveau fichier : view/unicaen-privilege/perimetre-categorie/template/form-categorie.phtml
	nouveau fichier : view/unicaen-privilege/perimetre/index.phtml
	nouveau fichier : view/unicaen-privilege/perimetre/template/form-perimetre.phtml
	modifié :         view/unicaen-privilege/privilege-categorie/gerer.phtml
	modifié :         view/unicaen-privilege/privilege-categorie/index.phtml
	supprimé :        view/unicaen-privilege/privilege-categorie/supprimer.phtml
	modifié :         view/unicaen-privilege/privilege/attribuer.phtml
	modifié :         view/unicaen-privilege/privilege/index.phtml
	supprimé :        view/unicaen-privilege/privilege/supprimer.phtml
	modifié :         view/unicaen-privilege/privilege/template/form-privilege.phtml

 Modifications qui ne seront pas validées :
	modifié :         config/unicaen-perimetre.global.php.dist
	modifié :         config/unicaen-privilege.global.php.dist
	modifié :         src/UnicaenPrivilege/Controller/PrivilegeController.php
parents fbc93c62 3fbe0b8b
Loading
Loading
Loading
Loading
+1 −1
Changes for composer.json: 1 added line, 1 removed line.
Original line number Diff line number Diff line
{
    "name": "unicaen/privilege",
    "description": "Module reprenant la gestion des privileges  - Version laminas",
    "description": "Module reprenant la gestion des privileges",
    "repositories": [
        {
            "type": "composer",
+264 −0
Changes for config/merged/perimetre.config.php: 264 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

use UnicaenPrivilege\Assertion\Perimetre\AbstractPerimetreAssertionFactory;
use UnicaenPrivilege\Controller\PerimetreCategorieController;
use UnicaenPrivilege\Controller\PerimetreCategorieControllerFactory;
use UnicaenPrivilege\Controller\PerimetreController;
use UnicaenPrivilege\Controller\PerimetreControllerFactory;
use UnicaenPrivilege\Form\Perimetre\CategorieForm;
use UnicaenPrivilege\Form\Perimetre\CategorieFormFactory;
use UnicaenPrivilege\Form\Perimetre\PerimetreForm;
use UnicaenPrivilege\Form\Perimetre\PerimetreFormFactory;
use UnicaenPrivilege\Provider\Privilege\PerimetrePrivileges;
use UnicaenPrivilege\Service\Perimetre\PerimetreCategorieService;
use UnicaenPrivilege\Service\Perimetre\PerimetreCategorieServiceFactory;
use UnicaenPrivilege\Service\Perimetre\PerimetreService;
use UnicaenPrivilege\Service\Perimetre\PerimetreServiceFactory;
use UnicaenPrivilege\View\Helper\Perimetre\PerimetreCategorieViewHelper;

return [
    'bjyauthorize' => [
        'guards' => [
            UnicaenPrivilege\Guard\PrivilegeController::class => [
                [
                    'controller' => PerimetreController::class,
                    'action' => [
                        'index',
                    ],
                    'privileges' => [
                        PerimetrePrivileges::CONSULTER,
                    ],
                ],
                [
                    'controller' => PerimetreController::class,
                    'action' => [
                        'ajouter',
                        'modifier'
                    ],
                    'privileges' => [
                        PerimetrePrivileges::EDITER,
                    ],
                ],
                [
                    'controller' => PerimetreController::class,
                    'action' => [
                        'supprimer',
                    ],
                    'privileges' => [
                        PerimetrePrivileges::SUPPRIMER,
                    ],
                ],
                [
                    'controller' => PerimetreCategorieController::class,
                    'action' => [
                        'index',
                        'gerer',
                    ],
                    'privileges' => [
                        PerimetrePrivileges::CONSULTER,
                    ],
                ],
                [
                    'controller' => PerimetreCategorieController::class,
                    'action' => [
                        'activer',
                    ],
                    'privileges' => [
                        PerimetrePrivileges::ATTRIBUER,
                    ],
                ],
                [
                    'controller' => PerimetreCategorieController::class,
                    'action' => [
                        'ajouter',
                        'modifier',
                    ],
                    'privileges' => [
                        PerimetrePrivileges::EDITER,
                    ],
                ],
                [
                    'controller' => PerimetreCategorieController::class,
                    'action' => [
                        'supprimer',
                    ],
                    'privileges' => [
                        PerimetrePrivileges::SUPPRIMER,
                    ],
                ],
            ],
        ],
    ],

    'router' => [
        'routes' => [
            'unicaen-perimetre' => [
                'type' => Literal::class,
                'options' => [
                    'route' => '/perimetre',
                    'defaults' => [
                        'controller' => PerimetreController::class,
                        'action' => 'index',
                    ],
                ],
                'may_terminate' => true,
                'child_routes' => [
                    'ajouter' => [
                        'type' => Segment::class,
                        'options' => [
                            'route' => '/ajouter/:categorie',
                            'defaults' => [
                                'controller' => PerimetreController::class,
                                'action' => 'ajouter',
                            ],
                            'constraints' => [
                                'categorie' => '\d+',
                            ],
                        ],
                    ],
                    'modifier' => [
                        'type' => Segment::class,
                        'options' => [
                            'route' => '/modifier/:perimetre',
                            'defaults' => [
                                'controller' => PerimetreController::class,
                                'action' => 'modifier',
                            ],
                            'constraints' => [
                                'perimetre' => '\d+',
                            ],
                        ],
                    ],
                    'supprimer' => [
                        'type' => Segment::class,
                        'options' => [
                            'route' => '/supprimer/:perimetre',
                            'defaults' => [
                                'controller' => PerimetreController::class,
                                'action' => 'supprimer',
                            ],
                            'constraints' => [
                                'perimetre' => '\d+',
                            ],
                        ],
                    ],
                    'categorie' => [
                        'type' => Literal::class,
                        'options' => [
                            'route' => '/categorie',
                            'defaults' => [
                                'controller' => PerimetreCategorieController::class,
                                'action' => 'index',
                            ],
                        ],
                        'may_terminate' => true,
                        'child_routes' => [
                            'activer' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/activer/:role/:categorie',
                                    'defaults' => [
                                        'controller' => PerimetreCategorieController::class,
                                        'action' => 'activer',
                                    ],
                                    'constraints' => [
                                        'role' => '\d+',
                                        'categorie' => '\d+',
                                    ],
                                ],
                            ],
                            'ajouter' => [
                                'type' => Literal::class,
                                'options' => [
                                    'route' => '/ajouter',
                                    'defaults' => [
                                        'controller' => PerimetreCategorieController::class,
                                        'action' => 'ajouter',
                                    ],
                                ],
                            ],
                            'gerer' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/gerer/:categorie',
                                    'defaults' => [
                                        'controller' => PerimetreCategorieController::class,
                                        'action' => 'gerer',
                                    ],
                                    'constraints' => [
                                        'categorie' => '\d+',
                                    ],
                                ],
                                'may_terminate' => true,
                            ],
                            'modifier' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/modifier/:categorie',
                                    'defaults' => [
                                        'controller' => PerimetreCategorieController::class,
                                        'action' => 'modifier',
                                    ],
                                    'constraints' => [
                                        'categorie' => '\d+',
                                    ],
                                ],
                                'may_terminate' => true,
                            ],
                            'supprimer' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/supprimer/:categorie',
                                    'defaults' => [
                                        'controller' => PerimetreCategorieController::class,
                                        'action' => 'supprimer',
                                    ],
                                    'constraints' => [
                                        'categorie' => '\d+',
                                    ],
                                ],
                                'may_terminate' => true,
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'controllers' => [
        'factories' => [
            PerimetreCategorieController::class => PerimetreCategorieControllerFactory::class,
            PerimetreController::class => PerimetreControllerFactory::class,
        ],
    ],

    'service_manager' => [
        'factories' => [
            PerimetreCategorieService::class => PerimetreCategorieServiceFactory::class,
            PerimetreService::class => PerimetreServiceFactory::class,
        ],
        'abstract_factories' => [
            AbstractPerimetreAssertionFactory::class,
        ],
    ],

    'form_elements' => [
        'factories' => [
            CategorieForm::class => CategorieFormFactory::class,
            PerimetreForm::class => PerimetreFormFactory::class,
        ],
    ],

    'hydrators' => [
        'invokables' => [
            'perimetre' => PerimetreViewHelper::class,
        ],
    ],

    'view_helpers' => [
        'invokables' => [
            'perimetreCategorie' => PerimetreCategorieViewHelper::class,
        ],
    ],
];
+32 −7
Changes for config/merged/privilege.config.php: 32 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ use UnicaenPrivilege\Service\Privilege\PrivilegeCategorieService;
use UnicaenPrivilege\Service\Privilege\PrivilegeCategorieServiceFactory;
use UnicaenPrivilege\Service\Privilege\PrivilegeService;
use UnicaenPrivilege\Service\Privilege\PrivilegeServiceFactory;
use UnicaenPrivilege\View\Privilege\PrivilegeViewHelper;
use UnicaenPrivilege\View\Helper\Privilege\PrivilegeViewHelper;
use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;

@@ -127,23 +127,30 @@ return [
                ],
                'may_terminate' => true,
                'child_routes' => [
                    'attribuer' => [
                    'ajouter' => [
                        'type' => Segment::class,
                        'options' => [
                            'route'    => '/attribuer/:role/:privilege',
                            'route' => '/ajouter/:categorie',
                            'defaults' => [
                                'controller' => PrivilegeController::class,
                                'action' => 'attribuer',
                                'action' => 'ajouter',
                            ],
                            'constraints' => [
                                'categorie' => '\d+',
                            ],
                        ],
                    'ajouter' => [
                    ],
                    'attribuer' => [
                        'type' => Segment::class,
                        'options' => [
                            'route' => '/ajouter/:categorie',
                            'route'    => '/attribuer/:role/:privilege',
                            'defaults' => [
                                'controller' => PrivilegeController::class,
                                'action' => 'ajouter',
                                'action' => 'attribuer',
                            ],
                            'constraints' => [
                                'role' => '\d+',
                                'privilege' => '\d+',
                            ],
                        ],
                    ],
@@ -155,6 +162,9 @@ return [
                                'controller' => PrivilegeController::class,
                                'action' => 'modifier',
                            ],
                            'constraints' => [
                                'privilege' => '\d+',
                            ],
                        ],
                    ],
                    'supprimer' => [
@@ -165,6 +175,9 @@ return [
                                'controller' => PrivilegeController::class,
                                'action' => 'supprimer',
                            ],
                            'constraints' => [
                                'privilege' => '\d+',
                            ],
                        ],
                    ],
                    'categorie' => [
@@ -196,6 +209,9 @@ return [
                                        'controller' => PrivilegeCategorieController::class,
                                        'action'     => 'gerer',
                                    ],
                                    'constraints' => [
                                        'categorie' => '\d+',
                                    ],
                                ],
                                'may_terminate' => true,
                            ],
@@ -207,6 +223,9 @@ return [
                                        'controller' => PrivilegeCategorieController::class,
                                        'action'     => 'provider',
                                    ],
                                    'constraints' => [
                                        'categorie' => '\d+',
                                    ],
                                ],
                                'may_terminate' => true,
                            ],
@@ -218,6 +237,9 @@ return [
                                        'controller' => PrivilegeCategorieController::class,
                                        'action'     => 'modifier',
                                    ],
                                    'constraints' => [
                                        'categorie' => '\d+',
                                    ],
                                ],
                                'may_terminate' => true,
                            ],
@@ -229,6 +251,9 @@ return [
                                        'controller' => PrivilegeCategorieController::class,
                                        'action'     => 'supprimer',
                                    ],
                                    'constraints' => [
                                        'categorie' => '\d+',
                                    ],
                                ],
                                'may_terminate' => true,
                            ],
+62 −0
Changes for config/unicaen-perimetre.global.php.dist: 62 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

use UnicaenPrivilege\Entity\Db\Perimetre;
use UnicaenPrivilege\Provider\Privilege\PerimetrePrivileges;


$settings = [
    /**
     * L'entité associée aux périmètres peut être spécifiée via la clef de configuration ['unicaen_auth']['perimetre_entity_class']
     * Si elle est manquante alors la classe @see \UnicaenPrivilege\Entity\Db\Perimetre est utilisée
     * NB: la classe spécifiée doit hériter de @see \UnicaenPrivilege\Entity\Db\AbstractPerimetre
     */
    'perimetre_entity_class' => Perimetre::class,

    'enable_perimetres' => false,
];

$config = [
    'unicaen-auth' => $settings,
];

if ($settings['enable_perimetres']) {
    $perimetres = [

        'unicaen-perimetre' => [
            /**
             * Liste des assertions utilisées et des services associés.
             *
             * Important :
             * - le nom de l'assertion au niveau des routes doit respecter le format 'Perimetre\\<nom_de_l_assertion>'
             *   (ex : 'assertion' => 'Perimetre\\Structure')
             * - le service associé doit hériter de @see \UnicaenPrivilege\Assertion\Perimetre\AbstractPerimetreAssertion
             */
            'assertions' => [
                // 'Structure' => StructureAssertion::class,
            ],
        ],

        'navigation' => [
            'default' => [
                'home' => [
                    'pages' => [
                        'droits' => [
                            'pages' => [
                                [
                                    'label' => "Gérer les périmètres",
                                    'title' => "Gérer les périmetres",
                                    'route' => 'unicaen-perimetre',
                                    'resource' => PerimetrePrivileges::getResourceId(PerimetrePrivileges::CONSULTER),
                                ],
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ];
} else {
    $perimetres = [];
}

return array_merge_recursive($config, $perimetres);
 No newline at end of file
+5 −5
Changes for config/unicaen-privilege.global.php.dist: 5 added lines, 5 removed lines.
Original line number Diff line number Diff line
<?php

use UnicaenPrivilege\Entity\Db\Perimetre;
use UnicaenPrivilege\Entity\Db\Privilege;
use UnicaenPrivilege\Provider\Privilege\PrivilegePrivileges;
use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProvider;
use UnicaenPrivilege\Service\Privilege\PrivilegeService;
use UnicaenPrivilege\Entity\Db\Privilege;
use UnicaenUtilisateur\Provider\Privilege\RolePrivileges;


$settings = [
@@ -43,14 +43,14 @@ if ($settings['unicaen-auth']['enable_privileges']) {
            'default' => [
                'home' => [
                    'pages' => [
                        //Sur les anciennes application qui avait besoin de la route droits
                        // Pour les anciennes applications qui avaient besoin de la route "droits"
                        'droits' => [
                            'label' => "Droit",
                            'title' => "Droit",
                            'route' => "unicaen-privilege",
                            'visible' => false,
                        ],
                        //Pour les nouvelle application qui utilise la route Administration
                        // Pour les nouvelles applications qui utilisent la route "administration"
                        'administration' => [
                            'label' => "Administration",
                            'title' => "Administration",
@@ -60,7 +60,7 @@ if ($settings['unicaen-auth']['enable_privileges']) {
                                    'label' => "Gérer les privilèges",
                                    'title' => "Gérer les privilèges",
                                    'route' => 'unicaen-privilege',
                                    'resource' => RolePrivileges::getResourceId(PrivilegePrivileges::PRIVILEGE_VOIR),
                                    'resource' => PrivilegePrivileges::getResourceId(PrivilegePrivileges::PRIVILEGE_VOIR),
                                ],
                            ],
                        ],
Loading