Loading config/merged/affectation.config.php +0 −3 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 => [ Loading config/module.config.php +6 −1 Original line number Diff line number Diff line Loading @@ -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', Loading src/UnicaenPrivilege/Service/AuthorizeService.php 0 → 100644 +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; } } src/UnicaenPrivilege/Service/AuthorizeServiceFactory.php 0 → 100644 +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; } } Loading
config/merged/affectation.config.php +0 −3 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 => [ Loading
config/module.config.php +6 −1 Original line number Diff line number Diff line Loading @@ -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', Loading
src/UnicaenPrivilege/Service/AuthorizeService.php 0 → 100644 +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; } }
src/UnicaenPrivilege/Service/AuthorizeServiceFactory.php 0 → 100644 +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; } }