Commit 566c31e4 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Arrangement pour suivre unicaen authentification

parent 1047ef27
Loading
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@

use UnicaenPrivilege\Controller\AffectationController;
use UnicaenPrivilege\Controller\AffectationControllerFactory;

use UnicaenPrivilege\Guard\PrivilegeController;
use UnicaenPrivilege\Provider\Privilege\PrivilegePrivileges;
use UnicaenPrivilege\Service\Affectation\AffectationService;
@@ -10,9 +9,7 @@ use UnicaenPrivilege\Service\Affectation\AffectationServiceFactory;
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;


return [

    'bjyauthorize' => [
        'guards' => [
            UnicaenPrivilege\Guard\PrivilegeController::class => [
+6 −1
Original line number Diff line number Diff line
@@ -27,7 +27,12 @@ return [
        ],
    ],


    'service_manager' => [
        'factories' => [
            'BjyAuthorize\Service\Authorize'           => \UnicaenPrivilege\Service\AuthorizeServiceFactory::class,
//            'BjyAuthorize\Service\Authorize'           => 'UnicaenAuthentification\Service\AuthorizeServiceFactory', // substituion
        ],
    ],
    'view_manager'    => [
        'template_path_stack' => [
            __DIR__ . '/../view',
+40 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenPrivilege\Service;

use UnicaenAuthentification\Service\Traits\UserContextServiceAwareTrait;

/**
 * Authorize service
 *
 * @author Laurent LÉCLUSE <laurent.lecluse at unicaen.fr>
 */
class AuthorizeService extends \BjyAuthorize\Service\Authorize
{
    use UserContextServiceAwareTrait;


    /**
     *
     * @return string
     */
    public function getIdentity()
    {
        $this->loaded && $this->loaded->__invoke();
        if ($this->loading) return 'bjyauthorize-identity';

        // on retourne par défaut le rôle sélectionné
        $role = $this->serviceUserContext->getSelectedIdentityRole();
        if ($role) return $role;

        $roles = $this->getIdentityProvider()->getIdentityRoles();
        // sinon, si on est uniquement authentifié et que user est défini, on retourne le rôle user
        if (isset($roles['user'])) return $roles['user'];
        // sinon, si guest est défini alors on retourne guest
        if (isset($roles['guest'])) return $roles['guest'];

        // sinon rien du tout!!
        return null;
    }

}
+41 −0
Original line number Diff line number Diff line
<?php

namespace UnicaenPrivilege\Service;

use BjyAuthorize\Provider\Identity\ProviderInterface;
use Interop\Container\ContainerInterface;
use UnicaenAuthentification\Service\UserContext;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;

/**
 * Factory responsible of building the {@see \BjyAuthorize\Service\Authorize} service
 *
 * @author Laurent LÉCLUSE <laurent.lecluse at unicaen.fr>
 */
class AuthorizeServiceFactory implements FactoryInterface
{
    /**
     * {@inheritDoc}
     */
    public function createService(ServiceLocatorInterface $serviceLocator)
    {
        return $this->__invoke($serviceLocator, '?');
    }

    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
    {
        $service = new AuthorizeService($container->get('BjyAuthorize\Config'), $container);

//        /** @var ProviderInterface $identityProvider */
//        $identityProvider = $container->get('BjyAuthorize\Provider\Identity\ProviderInterface');

        /** @var UserContext $serviceUserContext */
        $serviceUserContext = $container->get(UserContext::class);

        $service->setServiceUserContext($serviceUserContext);
//        $service->setIdentityProvider($identityProvider);

        return $service;
    }
}