Skip to content
Snippets Groups Projects
Select Git revision
  • 7ba3c28a3354cba35b3fbbb5741b3aa0f3362fc7
  • master default protected
  • update-min-openvox-version-07f8cb2
  • cleanup_fixtures
  • add-openvox
  • freebsd-14
  • remove-legacy-top-scope-syntax
  • rel430
  • tests
  • revert-363-augeas-module-cleanup
  • release-4.1.0
  • puppet8
  • relax-dependencies
  • rel400
  • mode
  • puppet7
  • release-3.1.0
  • freebsd13
  • freebsd11
  • stdlib
  • centos
  • v6.0.0
  • v5.1.0
  • v5.0.0
  • v4.5.0
  • v4.4.0
  • v4.3.0
  • v4.2.1
  • v4.2.0
  • v4.1.0
  • v4.0.0
  • v3.1.0
  • v3.0.0
  • v2.0.0
  • 1.12.0
  • 1.11.0
  • 1.10.0
  • 1.9.0
  • 1.8.0
  • 1.7.0
  • 1.6.0
41 results

postfix_virtual.aug

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    AbstractFactory.php 2.09 KiB
    <?php
    namespace UnicaenAuth\Authentication\Adapter;
    
    use UnicaenApp\Exception;
    use UnicaenAuth\Authentication\Adapter\Cas;
    use UnicaenAuth\Authentication\Adapter\Db;
    use UnicaenAuth\Authentication\Adapter\Ldap;
    use Zend\ServiceManager\AbstractFactoryInterface;
    use Zend\ServiceManager\ServiceLocatorInterface;
    
    /**
     * Description of AbstractFactory
     *
     * @author Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>
     */
    class AbstractFactory implements AbstractFactoryInterface
    {
        /**
         * Determine if we can create a service with name
         *
         * @param ServiceLocatorInterface $serviceLocator
         * @param $name
         * @param $requestedName
         * @return bool
         */
        public function canCreateServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName)
        {
            return strpos($requestedName, __NAMESPACE__) === 0 && class_exists($requestedName);
        }
    
        /**
         * Create service with name
         *
         * @param ServiceLocatorInterface $serviceLocator
         * @param $name
         * @param $requestedName
         * @return mixed
         */
        public function createServiceWithName(ServiceLocatorInterface $serviceLocator, $name, $requestedName)
        {
            switch ($requestedName) {
                case __NAMESPACE__ . '\Ldap':
                    $adapter = new Ldap();
                    break;
                case __NAMESPACE__ . '\Db':
                    $adapter = new Db();
                    break;
                case __NAMESPACE__ . '\Cas':
                    $adapter = new Cas();
                    break;
                default:
                    throw new Exception("Service demandé inattendu : '$requestedName'!");
                    break;
            }
    
            if ($adapter instanceof \Zend\EventManager\EventManagerAwareInterface) {
                $eventManager = $serviceLocator->get('event_manager');
                $adapter->setEventManager($eventManager);
                $userService = $serviceLocator->get('unicaen-auth_user_service'); /* @var $userService \UnicaenAuth\Service\User */
                $eventManager->attach('userAuthenticated', [$userService, 'userAuthenticated'], 100);
            }
    
            return $adapter;
        }
    }