/** * @covers Alchemy\Phrasea\Authentication\ProvidersCollection::get */ public function testGet() { $provider = $this->getProviderMock('neutron-provider'); $providers = new ProvidersCollection(); $providers->register($provider); $this->assertSame($provider, $providers->get('neutron-provider')); }
public function register(Application $app) { $app['authentication'] = $app->share(function (Application $app) { return new Authenticator($app, $app['browser'], $app['session'], $app['EM']); }); $app['authentication.token-validator'] = $app->share(function (Application $app) { return new TokenValidator($app['tokens']); }); $app['authentication.persistent-manager'] = $app->share(function (Application $app) { return new CookieManager($app['auth.password-encoder'], $app['EM'], $app['browser']); }); $app['authentication.suggestion-finder'] = $app->share(function (Application $app) { return new SuggestionFinder($app['manipulator.user']->getRepository()); }); $app['authentication.providers.factory'] = $app->share(function (Application $app) { return new ProviderFactory($app['url_generator'], $app['session']); }); $app['authentication.providers.account-creator'] = $app->share(function (Application $app) { $authConf = $app['conf']->get('authentication'); $templates = array_filter(array_map(function ($templateId) use($app) { try { if (is_int($templateId) || ctype_digit($templateId)) { return $app['manipulator.user']->getRepository()->find($templateId); } if (false !== $templateId) { return $app['manipulator.user']->getRepository()->find($templateId); } } catch (\Exception $e) { } }, $authConf['auto-create']['templates'])); $enabled = $app['conf']->get(['registry', 'registration', 'auto-register-enabled']) && $app['registration.manager']->isRegistrationEnabled(); return new AccountCreator($app['tokens'], $app['phraseanet.appbox'], $enabled, $templates); }); $app['authentication.providers'] = $app->share(function (Application $app) { $providers = new ProvidersCollection(); $authConf = $app['conf']->get('authentication'); foreach ($authConf['providers'] as $providerId => $data) { if (isset($data['enabled']) && false === $data['enabled']) { continue; } $providers->register($app['authentication.providers.factory']->build($providerId, $data['options'])); } return $providers; }); $app['authentication.manager'] = $app->share(function (Application $app) { return new Manager($app['authentication'], $app['authentication.providers']); }); $app['auth.password-encoder'] = $app->share(function (Application $app) { return new PasswordEncoder($app['conf']->get(['main', 'key'])); }); $app['auth.old-password-encoder'] = $app->share(function (Application $app) { return new OldPasswordEncoder(); }); $app['auth.native.failure-manager'] = $app->share(function (Application $app) { $authConf = $app['conf']->get(['authentication', 'captcha']); return new FailureManager($app['EM'], $app['recaptcha'], isset($authConf['trials-before-display']) ? $authConf['trials-before-display'] : 9); }); $app['auth.password-checker'] = $app->share(function (Application $app) { return new NativeAuthentication($app['auth.password-encoder'], $app['auth.old-password-encoder'], $app['manipulator.user']); }); $app['auth.native'] = $app->share(function (Application $app) { $authConf = $app['conf']->get('authentication'); if ($authConf['captcha']['enabled']) { return new FailureHandledNativeAuthentication($app['auth.password-checker'], $app['auth.native.failure-manager']); } else { return $app['auth.password-checker']; } }); }