/** * Iterates over legacy SSO handlers, and pre-authenticates a user if a handler returns one. * * @param Request $request A Request instance * * @return array An array composed of the user and the credentials */ protected function getPreAuthenticatedData(Request $request) { $kernelClosure = $this->legacyKernelClosure; /** @var \ezpKernelHandler $legacyKernel */ $legacyKernel = $kernelClosure(); $logger = $this->logger; $legacyUser = $legacyKernel->runCallback(function () use($logger) { foreach (eZINI::instance()->variable('UserSettings', 'SingleSignOnHandlerArray') as $ssoHandlerName) { $className = 'eZ' . $ssoHandlerName . 'SSOHandler'; if (!class_exists($className)) { if ($logger) { $logger->error("Undefined legacy SSOHandler class: {$className}"); } continue; } $ssoHandler = new $className(); $ssoUser = $ssoHandler->handleSSOLogin(); if (!$ssoUser instanceof eZUser) { continue; } $logger->info("Matched user using eZ legacy SSO Handler: {$className}"); return $ssoUser; } }, false, false); // No matched user with legacy. if (!$legacyUser instanceof eZUser) { return array('', ''); } $user = new User($this->userService->loadUser($legacyUser->attribute('contentobject_id')), array('ROLE_USER')); return array($user, $user->getPassword()); }
public function testSetAPIUser() { $apiUser = $this->getMock('eZ\\Publish\\API\\Repository\\Values\\User\\User'); $user = new User(); $user->setAPIUser($apiUser); $this->assertSame($apiUser, $user->getAPIUser()); }