/** * Handle login. * * @param Request $request * * @throws Ex\DisabledProviderException * * @return bool */ protected function login(Request $request) { $providerName = $this->providerManager->getProviderName(); $provider = $this->config->getProvider($providerName); if (!$provider->isEnabled()) { throw new Ex\DisabledProviderException('Invalid provider setting.'); } if ($this->session->hasAuthorisation()) { $this->setDebugMessage('Session has existing authorisation.'); return true; } // Set user feedback messages $this->setDebugMessage(sprintf('Login was route complete for %s, redirecting for authentication.', $request->getRequestUri())); return false; }
/** * Get the Authorisation\AuthorisationInterface class to handle the request. * * @param \Silex\Application $app * * @throws Exception\InvalidAuthorisationRequestException * @throws \RuntimeException */ protected function setProviderHandler(Application $app) { $providerName = $this->getProviderName(); if ($providerName === null) { $app['logger.system']->debug('[Members][Provider]: Request was missing a provider.', ['event' => 'extensions']); throw new Exception\InvalidAuthorisationRequestException('Authentication configuration error. Unable to proceed!'); } $providerConfig = $this->config->getProvider($providerName); if ($providerConfig === null) { $app['logger.system']->debug('[Members][Provider]: Request provider did not match any configured providers.', ['event' => 'extensions']); throw new Exception\InvalidAuthorisationRequestException('Authentication configuration error. Unable to proceed!'); } if (!$providerConfig->isEnabled() && $providerName !== 'Generic') { $app['logger.system']->debug('[Members][Provider]: Request provider was disabled.', ['event' => 'extensions']); throw new Exception\InvalidAuthorisationRequestException('Authentication configuration error. Unable to proceed!'); } $handlerKey = $this->getHandlerKey($providerName); $app['members.oauth.handler'] = $app->share(function ($app) use($handlerKey) { return $app[$handlerKey]([]); }); $this->providerHandler = $app['members.oauth.handler']; }