Commit 1f284fab authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Initial commit

parents
Loading
Loading
Loading
Loading

Module.php

0 → 100644
+57 −0
Original line number Diff line number Diff line
<?php


namespace UnicaenPrivilege;

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');
                }
            }
        );

    }

    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
+26 −0
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":                                  "dev-zf-3.x",
    "unicaen/auth":                                 "dev-zf-3.x",
    "unicaen/utilisateur":                          "dev-zf-3.x"
  },
  "require-dev": {
    "phpunit/phpunit":                              ">=3.7"
  },
  "autoload": {
    "psr-0": {
      "UnicaenUtilisateur": "src/"
    },
    "classmap": [
      "./Module.php"
    ]
  }
}
+238 −0
Original line number Diff line number Diff line
<?php

use UnicaenPrivilege\Controller\ConfigurationController;
use UnicaenPrivilege\Controller\ConfigurationControllerFactory;
use UnicaenPrivilege\Form\CategoriePrivilege\CategoriePrivilegeForm;
use UnicaenPrivilege\Form\CategoriePrivilege\CategoriePrivilegeFormFactory;
use UnicaenPrivilege\Form\CategoriePrivilege\CategoriePrivilegeHydrator;
use UnicaenPrivilege\Form\CategoriePrivilege\CategoriePrivilegeHydratorFactory;
use UnicaenPrivilege\Form\Privilege\PrivilegeForm;
use UnicaenPrivilege\Form\Privilege\PrivilegeFormFactory;
use UnicaenPrivilege\Form\Privilege\PrivilegeHydrator;
use UnicaenPrivilege\Form\Privilege\PrivilegeHydratorFactory;
use UnicaenPrivilege\Provider\Privilege\PrivilegePrivileges;
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;


return [

    'bjyauthorize' => [
        'guards' => [
            UnicaenPrivilege\Guard\PrivilegeController::class => [
                [
                    'controller' => ConfigurationController::class,
                    'action' => [
                        'index-configuration-categorie',
                        'gerer-categorie',
                        'provider',
                    ],
                    'privileges' => [
                        PrivilegePrivileges::PRIVILEGE_VOIR,
                    ],
                ],
                [
                    'controller' => ConfigurationController::class,
                    'action' => [
                        'creer-privilege',
                        'creer-categorie',
                    ],
                    'privileges' => [
                        PrivilegePrivileges::PRIVILEGE_AJOUTER,
                    ],
                ],
                [
                    'controller' => ConfigurationController::class,
                    'action' => [
                        'modifier-privilege',
                        'modifier-categorie',
                    ],
                    'privileges' => [
                        PrivilegePrivileges::PRIVILEGE_MODIFIER,
                    ],
                ],
                [
                    'controller' => ConfigurationController::class,
                    'action' => [
                        'detruire-privilege',
                        'detruire-categorie',
                    ],
                    'privileges' => [
                        PrivilegePrivileges::PRIVILEGE_SUPPRIMER,
                    ],
                ],
            ],
        ],
    ],

    'navigation' => [
        'default' => [
            'home' => [
                'pages' => [
                    'administration' => [
                        'pages' => [
                            'privilege' => [
                                'pages' => [
                                    'privilege-configuration' => [
                                        'label' => 'Configuration',
                                        'route' => 'configuration-categorie',
                                        'resource' => PrivilegePrivileges::getResourceId(PrivilegePrivileges::PRIVILEGE_AJOUTER),
                                        'order'    => 10001,
                                        'pages' => [
                                            'privilege-configuration' => [
                                                'label' => 'Gérer une catégorie',
                                                'route' => 'configuration-categorie/gerer',
                                                'resource' => PrivilegePrivileges::getResourceId(PrivilegePrivileges::PRIVILEGE_AJOUTER),
                                                'order'    => 10001,
                                            ],
                                        ],
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],

    'router' => [
        'routes' => [
            'configuration-categorie' => [
                'type' => Literal::class,
                'options' => [
                    'route'    => '/configuration-categorie',
                    'defaults' => [
                        'controller' => ConfigurationController::class,
                        'action'     => 'index-configuration-categorie',
                    ],
                ],
                'may_terminate' => true,
                'child_routes' => [
                    'creer' => [
                        'type' => Literal::class,
                        'options' => [
                            'route'    => '/creer',
                            'defaults' => [
                                'controller' => ConfigurationController::class,
                                'action'     => 'creer-categorie',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                    'gerer' => [
                        'type' => Segment::class,
                        'options' => [
                            'route'    => '/gerer/:categorie',
                            'defaults' => [
                                'controller' => ConfigurationController::class,
                                'action'     => 'gerer-categorie',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                    'modifier' => [
                        'type' => Segment::class,
                        'options' => [
                            'route'    => '/modifier/:categorie',
                            'defaults' => [
                                'controller' => ConfigurationController::class,
                                'action'     => 'modifier-categorie',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                    'detruire' => [
                        'type' => Segment::class,
                        'options' => [
                            'route'    => '/detruire/:categorie',
                            'defaults' => [
                                'controller' => ConfigurationController::class,
                                'action'     => 'detruire-categorie',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                    'provider' => [
                        'type' => Segment::class,
                        'options' => [
                            'route'    => '/provider/:categorie',
                            'defaults' => [
                                'controller' => ConfigurationController::class,
                                'action'     => 'provider',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                ],
            ],
            'configuration-privilege' => [
                'type' => Literal::class,
                'options' => [
                    'route'    => '/configuration-privilege',
                    'defaults' => [
                        'controller' => ConfigurationController::class,
                    ],
                ],
                'may_terminate' => false,
                'child_routes' => [
                    'creer' => [
                        'type' => Segment::class,
                        'options' => [
                            'route'    => '/creer/:categorie',
                            'defaults' => [
                                'controller' => ConfigurationController::class,
                                'action'     => 'creer-privilege',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                    'modifier' => [
                        'type' => Segment::class,
                        'options' => [
                            'route'    => '/modifier/:privilege',
                            'defaults' => [
                                'controller' => ConfigurationController::class,
                                'action'     => 'modifier-privilege',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                    'detruire' => [
                        'type' => Segment::class,
                        'options' => [
                            'route'    => '/detruire/:privilege',
                            'defaults' => [
                                'controller' => ConfigurationController::class,
                                'action'     => 'detruire-privilege',
                            ],
                        ],
                        'may_terminate' => true,
                    ],
                ],
            ],
        ],
    ],

    'service_manager' => [
        'factories' => [],
    ],
    'controllers'     => [
        'factories' => [
            ConfigurationController::class => ConfigurationControllerFactory::class,

        ],
    ],
    'form_elements' => [
        'factories' => [
            CategoriePrivilegeForm::class => CategoriePrivilegeFormFactory::class,
            PrivilegeForm::class => PrivilegeFormFactory::class,
        ],
    ],
    'hydrators' => [
        'factories' => [
            CategoriePrivilegeHydrator::class => CategoriePrivilegeHydratorFactory::class,
            PrivilegeHydrator::class => PrivilegeHydratorFactory::class,
        ],
    ]
];
 No newline at end of file
+101 −0
Original line number Diff line number Diff line
<?php

use UnicaenPrivilege\Controller\PrivilegeController;
use UnicaenPrivilege\Controller\PrivilegeControllerFactory;
use UnicaenPrivilege\Provider\Privilege\PrivilegePrivileges;
use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProvider;
use UnicaenPrivilege\Provider\Rule\PrivilegeRuleProviderFactory;
use UnicaenPrivilege\Service\Privilege\PrivilegeService;
use UnicaenPrivilege\Service\Privilege\PrivilegeServiceFactory;
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;

return [

    'bjyauthorize' => [
        'guards' => [
            UnicaenPrivilege\Guard\PrivilegeController::class => [
                [
                    'controller' => PrivilegeController::class,
                    'action' => [
                        'index',
                    ],
                    'privileges' => [
                        PrivilegePrivileges::PRIVILEGE_VOIR,
                    ],
                ],
                [
                    'controller' => PrivilegeController::class,
                    'action' => [
                        'modifier',
                    ],
                    'privileges' => [
                        PrivilegePrivileges::PRIVILEGE_AFFECTER,
                    ],
                ],
            ],
        ],
    ],

    'controllers' => [
        'invokables' => [],
        'factories' => [
            PrivilegeController::class  => PrivilegeControllerFactory::class,
        ],
    ],

    'service_manager' => [
        'factories' => [
            PrivilegeService::class => PrivilegeServiceFactory::class,
            PrivilegeRuleProvider::class => PrivilegeRuleProviderFactory::class, //ne sert pas ...
        ],
    ],

    'router' => [
        'routes' => [
            'privilege' => [
                'type' => Literal::class,
                'options' => [
                    'route'    => '/privilege',
                    'defaults' => [
                        'controller' => PrivilegeController::class,
                        'action'     => 'index',
                    ],
                ],
                'may_terminate' => true,
                'child_routes' => [
                ],
            ],
            'modifier-privilege' => [
                'type'          => Segment::class,
                'options'       => [
                    'route'    => '/modifier-privilege/:role/:privilege',
                    'defaults' => [
                        'controller'    => PrivilegeController::class,
                        'action'        => 'modifier',
                    ],
                ],
            ],

        ],
    ],

    'navigation' => [
        'default' => [
            'home' => [
                'pages' => [
                    'administration' => [
                        'pages' => [
                            'privilege' => [
                                'label' => 'Privilège',
                                'route' => 'privilege',
                                'resource' => \UnicaenPrivilege\Guard\PrivilegeController::getResourceId(PrivilegeController::class, 'index'),
                                'order'    => 5000,
                            ],
                        ],
                    ],
                ],
            ],
        ],
    ],
];
 No newline at end of file
+36 −0
Original line number Diff line number Diff line
<?php

use Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain;
use Doctrine\ORM\Mapping\Driver\XmlDriver;

return [
    'doctrine' => [
        'driver' => [
            'orm_default' => [
                'class' => MappingDriverChain::class,
                'drivers' => [
                    'UnicaenPrivilege\Entity\Db' => 'orm_default_xml_driver',
                ],
            ],
            'orm_default_xml_driver' => [
                'class' => XmlDriver::class,
                'cache' => 'apc',
                'paths' => [
                    __DIR__ . '/../src/UnicaenPrivilege/Entity/Db/Mapping',
                ],
            ],
        ],
        'cache' => [
            'apc' => [
                'namespace' => 'UNICAEN__' . __NAMESPACE__,
            ],
        ],
    ],


    'view_manager'    => [
        'template_path_stack' => [
            __DIR__ . '/../view',
        ],
    ],
];
Loading