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

Initial commit

parents
Loading
Loading
Loading
Loading

.gitignore

0 → 100644
+2 −0
Changes for .gitignore: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
.idea/
vendor/

Module.php

0 → 100644
+63 −0
Changes for Module.php: 63 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php


namespace UnicaenUtilisateur;

use UnicaenUtilisateur\Event\UserRoleSelectedEventListener;
use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;
use Zend\Stdlib\ArrayUtils;
use Zend\Stdlib\Glob;
use Zend\Config\Factory as ConfigFactory;

class Module
{
    public function onBootstrap(MvcEvent $e)
    {
        $e->getApplication()->getServiceManager()->get('translator');
        $eventManager        = $e->getApplication()->getEventManager();
        $moduleRouteListener = new ModuleRouteListener();
        $moduleRouteListener->attach($eventManager);

        /* Active un layout spécial si la requête est de type AJAX. Valable pour TOUS les modules de l'application. */
        $eventManager->getSharedManager()->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch',
            function (MvcEvent $e) {
                $request = $e->getRequest();
                if ($request instanceof HttpRequest && $request->isXmlHttpRequest()) {
                    $e->getTarget()->layout('layout/ajax.phtml');
                }
            }
        );

        $sm = $e->getApplication()->getServiceManager();

        /** @var UserRoleSelectedEventListener $listener */
        $listener = $sm->get('UserRoleSelectedEventListener');
        $listener->attach($eventManager);
    }

    public function getConfig()
    {
        $configInit = [
            __DIR__ . '/config/module.config.php'
        ];
        $configFiles = ArrayUtils::merge(
            $configInit,
            Glob::glob(__DIR__ . '/config/merged/{,*.}{config}.php', Glob::GLOB_BRACE)
        );

        return ConfigFactory::fromFiles($configFiles);
    }


    public function getAutoloaderConfig()
    {
        return array(
            'Zend\Loader\StandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
    }
}

composer.json

0 → 100644
+28 −0
Changes for composer.json: 28 added lines, 0 removed lines.
Original line number Diff line number Diff line
{
  "name": "unicaen/utilisateur",
  "description": "Module reprenant la gestion des utilisateurs, privileges et roles",
  "repositories": [
    {
      "type": "composer",
      "url": "https://gest.unicaen.fr/packagist"
    }
  ],
  "require": {
    "unicaen/app":                                  ">=3.0"
  },
  "require-dev": {
    "phpunit/phpunit":                              ">=3.7"
  },
  "autoload": {
    "psr-0": {
      "UnicaenUtilisateur": "src/"
    },
  "suggested": {
    "UnicaenUtilisateurLdapAdaptater" : "unicaen/utilisateur-ldap-adapter",
    "UnicaenUtilisateurOctopusAdaptater" : "unicaen/utilisateur-octopus-adapter"
  },
    "classmap": [
      "./Module.php"
    ]
  }
}
+150 −0
Changes for config/merged/role.config.php: 150 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

use UnicaenUtilisateur\Controller\RoleController;
use UnicaenUtilisateur\Controller\RoleControllerFactory;
use UnicaenUtilisateur\Form\Role\RoleForm;
use UnicaenUtilisateur\Form\Role\RoleFormFactory;
use UnicaenUtilisateur\Form\Role\RoleHydrator;
use UnicaenUtilisateur\Form\Role\RoleHydratorFactory;
use UnicaenUtilisateur\Service\Role\RoleService;
use UnicaenUtilisateur\Service\Role\RoleServiceFactory;
use UnicaenUtilisateur\Provider\Privilege\RolePrivileges;
use UnicaenPrivilege\Guard\PrivilegeController;
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;

return [
    'bjyauthorize' => [
        'guards' => [
            PrivilegeController::class => [
                [
                    'controller' => RoleController::class,
                    'action' => [
                        'index',
                        'listing',
                    ],
                    'privileges' => [
                        RolePrivileges::ROLE_AFFICHER,
                    ],
                ],
                [
                    'controller' => RoleController::class,
                    'action' => [
                        'ajouter',
                        'modifier',
                    ],
                    'privileges' => [
                        RolePrivileges::ROLE_MODIFIER,
                    ],
                ],
                [
                    'controller' => RoleController::class,
                    'action' => [
                        'supprimer',
                    ],
                    'privileges' => [
                        RolePrivileges::ROLE_EFFACER,
                    ],
                ],
            ],
        ],
    ],

    'navigation' => [
        'default' => [
            'home' => [
                'pages' => [
                    'administration' => [
                        'pages' => [
                            'role' => [
                                'label' => 'Rôle',
                                'route' => 'role',
                                'resource' => RolePrivileges::getResourceId(RolePrivileges::ROLE_AFFICHER),
                                'order'    => 1002,
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'router' => [
        'routes' => [
            'role' => [
                'type' => Literal::class,
                'options' => [
                    'route' => '/role',
                    'defaults' => [
                        'controller' => RoleController::class,
                        'action' => 'index',
                    ],
                ],
                'may_terminate' => true,
                'child_routes' => [
                    'listing' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/listing/:role',
                            'defaults'    => [
                                'controller' => RoleController::class,
                                'action' => 'listing',
                            ],
                        ],
                    ],
                    'ajouter' => [
                        'type'          => Literal::class,
                        'options'       => [
                            'route'       => '/ajouter',
                            'defaults'    => [
                                'controller' => RoleController::class,
                                'action' => 'ajouter',
                            ],
                        ],
                    ],
                    'modifier' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/modifier/:role',
                            'defaults'    => [
                                'controller' => RoleController::class,
                                'action' => 'modifier',
                            ],
                        ],
                    ],
                    'supprimer' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/supprimer/:role',
                            'defaults'    => [
                                'controller' => RoleController::class,
                                'action' => 'supprimer',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'service_manager' => [
        'factories' => [
            RoleService::class => RoleServiceFactory::class,
        ],
    ],
    'controllers'     => [
        'factories' => [
            RoleController::class => RoleControllerFactory::class,
        ],
    ],
    'form_elements' => [
        'factories' => [
            RoleForm::class => RoleFormFactory::class,
        ],
    ],
    'hydrators' => [
        'factories' => [
            RoleHydrator::class => RoleHydratorFactory::class,
        ],
    ],
];
+220 −0
Changes for config/merged/utilisateur.config.php: 220 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

use UnicaenUtilisateur\Controller\UtilisateurController;
use UnicaenUtilisateur\Controller\UtilisateurControllerFactory;
use UnicaenUtilisateur\Form\User\UserForm;
use UnicaenUtilisateur\Form\User\UserFormFactory;
use UnicaenUtilisateur\Form\User\UserHydrator;
use UnicaenUtilisateur\Form\User\UserHydratorFactory;
use UnicaenUtilisateur\Provider\Privilege\UtilisateurPrivileges;
use UnicaenUtilisateur\Service\Role\RoleService;
use UnicaenUtilisateur\Service\Role\RoleServiceFactory;
use UnicaenUtilisateur\Service\User\UserService;
use UnicaenUtilisateur\Service\User\UserServiceFactory;
use UnicaenPrivilege\Guard\PrivilegeController;
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;

return [
    'bjyauthorize' => [
        'guards' => [
            PrivilegeController::class => [
                [
                    'controller' => UtilisateurController::class,
                    'action' => [
                        'index',
                        'rechercher',
                        'listing',
                        'export'
                    ],
                    'privileges' => [
                        UtilisateurPrivileges::UTILISATEUR_AFFICHER,
                    ],
                ],
                [
                    'controller' => UtilisateurController::class,
                    'action' => [
                        'effacer',
                        'ajouter',
                    ],
                    'privileges' => [
                        UtilisateurPrivileges::UTILISATEUR_AJOUTER,
                    ],
                ],
                [
                    'controller' => UtilisateurController::class,
                    'action' => [
                        'changer-status',
                    ],
                    'privileges' => [
                        UtilisateurPrivileges::UTILISATEUR_CHANGERSTATUS,
                    ],
                ],
                [
                    'controller' => UtilisateurController::class,
                    'action' => [
                        'add-role',
                        'remove-role',
                    ],
                    'privileges' => [
                        UtilisateurPrivileges::UTILISATEUR_MODIFIERROLE,
                    ],
                ],
            ],
        ],
    ],

    'navigation' => [
        'default' => [
            'home' => [
                'pages' => [
                    'administration' => [
                        'pages' => [
                            'utilisateur' => [
                                'label' => 'Utilisateur',
                                'route' => 'utilisateur-preecog',
                                'resource' => UtilisateurPrivileges::getResourceId(UtilisateurPrivileges::UTILISATEUR_AFFICHER),
                                'order'    => 1001,
                                'pages' => [
                                    'listing-utilisateur' => [
                                        'label' => 'Listing',
                                        'route' => 'utilisateur-preecog/listing',
                                        'resource' => UtilisateurPrivileges::getResourceId(UtilisateurPrivileges::UTILISATEUR_AFFICHER),
                                        'order'    => 10001,
                                    ],
                                    'ajouter-utilisateur' => [
                                        'label' => 'Listing',
                                        'route' => 'utilisateur-preecog/ajouter',
                                        'resource' => UtilisateurPrivileges::getResourceId(UtilisateurPrivileges::UTILISATEUR_AJOUTER),
                                        'order'    => 10001,
                                    ],
                                ],
                            ],

                        ],
                    ],
                ],
            ],
        ],
    ],

    'router' => [
        'routes' => [
            'utilisateur-preecog' => [
                'type' => Literal::class,
                'options' => [
                    'route' => '/utilisateur',
                    'defaults' => [
                        'controller' => UtilisateurController::class,
                        'action' => 'index',
                    ],
                ],
                'may_terminate' => true,
                'child_routes' => [
                    'listing' => [
                        'type'          => Literal::class,
                        'options'       => [
                            'route'       => '/listing',
                            'defaults'    => [
                                'controller' => UtilisateurController::class,
                                'action' => 'listing',
                            ],
                        ],
                    ],
                    'ajouter' => [
                        'type'          => Literal::class,
                        'options'       => [
                            'route'       => '/ajouter',
                            'defaults'    => [
                                'controller' => UtilisateurController::class,
                                'action' => 'ajouter',
                            ],
                        ],
                    ],
                    'export' => [
                        'type'          => Literal::class,
                        'options'       => [
                            'route'       => '/export',
                            'defaults'    => [
                                'controller' => UtilisateurController::class,
                                'action' => 'export',
                            ],
                        ],
                    ],
                    'rechercher' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/rechercher[/:service-name]',
                            'defaults'    => [
                                'controller' => UtilisateurController::class,
                                'action' => 'rechercher',
                            ],
                        ],
                    ],
                    'add-role' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/add-role/:utilisateur/:role',
                            'defaults'    => [
                                'controller' => UtilisateurController::class,
                                'action' => 'add-role',
                            ],
                        ],
                    ],
                    'remove-role' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/remove-role/:utilisateur/:role',
                            'defaults'    => [
                                'controller' => UtilisateurController::class,
                                'action' => 'remove-role',
                            ],
                        ],
                    ],
                    'changer-status' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/changer-status/:utilisateur',
                            'defaults'    => [
                                'controller' => UtilisateurController::class,
                                'action' => 'changer-status',
                            ],
                        ],
                    ],
                    'effacer' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/effacer/:utilisateur',
                            'defaults'    => [
                                'controller' => UtilisateurController::class,
                                'action' => 'effacer',
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'service_manager' => [
        'factories' => [
            UserService::class => UserServiceFactory::class,
            RoleService::class => RoleServiceFactory::class,
        ],
    ],
    'form_elements' => [
        'factories' => [
            UserForm::class => UserFormFactory::class,
        ],
    ],
    'hydrators' => [
        'factories' => [
            UserHydrator::class => UserHydratorFactory::class,
        ],
    ],
    'controllers'     => [
        'factories' => [
            UtilisateurController::class => UtilisateurControllerFactory::class,
        ]
    ],
];
Loading