Loading src/UnicaenUtilisateur/Service/User/UserService.php +41 −1 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace UnicaenUtilisateur\Service\User; use BjyAuthorize\Provider\Identity\ProviderInterface; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\Exception\ORMException; use InvalidArgumentException; Loading Loading @@ -52,6 +53,31 @@ class UserService implements RechercheIndividuServiceInterface public function setAppname($appname) { $this->appname = $appname;} /** * @var RechercheIndividuServiceInterface[] */ private array $searchServices; /** * @param $searchServices */ public function setSearchServices($searchServices) : void { $this->searchServices = $searchServices; } private ?string $usernamefield = null; public function getUsernamefield(): ?string { return $this->usernamefield; } public function setUsernamefield(?string $usernamefield): void { $this->usernamefield = $usernamefield; } /** * @param string $userEntityClass * @return void Loading Loading @@ -479,5 +505,19 @@ class UserService implements RechercheIndividuServiceInterface return $qb->getQuery()->getResult(); } public function createFromSearchData(string $userId): ?UserInterface { list($source, $id) = explode('||', $userId); $sourceUser = $this->searchServices[$source]->findById($id); $newUser = $this->importFromRechercheIndividuResultatInterface($sourceUser, $source); $user = $this->findByUsername($newUser->getUsername($this->usernamefield)); if (!$user) { $user = $this->create($newUser); } return $user; } } src/UnicaenUtilisateur/Service/User/UserServiceFactory.php +19 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ use UnicaenAuthentification\Options\ModuleOptions; use UnicaenAuthentification\Service\UserContext; use UnicaenMail\Service\Mail\MailService; use UnicaenUtilisateur\Entity\Db\User; use UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuServiceInterface; use UnicaenUtilisateur\Service\Role\RoleService; use Laminas\Authentication\AuthenticationService; Loading Loading @@ -59,6 +60,24 @@ class UserServiceFactory $appname = $config['unicaen-app']['app_infos']['nom']; $service->setAppname($appname); // services de recherche d'un individu : application, ldap, octopus,... $rechercheServices = []; if(isset($config['unicaen-utilisateur']['recherche-individu']) && !empty($config['unicaen-utilisateur']['recherche-individu'])) { foreach ($config['unicaen-utilisateur']['recherche-individu'] as $key => $service_) { //sinon boucle ... if ($key === 'app') $serviceR = $this; else $serviceR = $container->get($service_); if($serviceR instanceof RechercheIndividuServiceInterface) { $rechercheServices[$key] = $serviceR; } } } $service->setSearchServices($rechercheServices); $usernamefield = $config['unicaen-auth']['local']['ldap']['username']; $service->setUsernameField($usernamefield); //Récupuration du cout des mots de passe pour le chiffrements $options = array_merge( $container->get('zfcuser_module_options')->toArray(), Loading Loading
src/UnicaenUtilisateur/Service/User/UserService.php +41 −1 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace UnicaenUtilisateur\Service\User; use BjyAuthorize\Provider\Identity\ProviderInterface; use Doctrine\ORM\EntityRepository; use Doctrine\ORM\Exception\ORMException; use InvalidArgumentException; Loading Loading @@ -52,6 +53,31 @@ class UserService implements RechercheIndividuServiceInterface public function setAppname($appname) { $this->appname = $appname;} /** * @var RechercheIndividuServiceInterface[] */ private array $searchServices; /** * @param $searchServices */ public function setSearchServices($searchServices) : void { $this->searchServices = $searchServices; } private ?string $usernamefield = null; public function getUsernamefield(): ?string { return $this->usernamefield; } public function setUsernamefield(?string $usernamefield): void { $this->usernamefield = $usernamefield; } /** * @param string $userEntityClass * @return void Loading Loading @@ -479,5 +505,19 @@ class UserService implements RechercheIndividuServiceInterface return $qb->getQuery()->getResult(); } public function createFromSearchData(string $userId): ?UserInterface { list($source, $id) = explode('||', $userId); $sourceUser = $this->searchServices[$source]->findById($id); $newUser = $this->importFromRechercheIndividuResultatInterface($sourceUser, $source); $user = $this->findByUsername($newUser->getUsername($this->usernamefield)); if (!$user) { $user = $this->create($newUser); } return $user; } }
src/UnicaenUtilisateur/Service/User/UserServiceFactory.php +19 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ use UnicaenAuthentification\Options\ModuleOptions; use UnicaenAuthentification\Service\UserContext; use UnicaenMail\Service\Mail\MailService; use UnicaenUtilisateur\Entity\Db\User; use UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuServiceInterface; use UnicaenUtilisateur\Service\Role\RoleService; use Laminas\Authentication\AuthenticationService; Loading Loading @@ -59,6 +60,24 @@ class UserServiceFactory $appname = $config['unicaen-app']['app_infos']['nom']; $service->setAppname($appname); // services de recherche d'un individu : application, ldap, octopus,... $rechercheServices = []; if(isset($config['unicaen-utilisateur']['recherche-individu']) && !empty($config['unicaen-utilisateur']['recherche-individu'])) { foreach ($config['unicaen-utilisateur']['recherche-individu'] as $key => $service_) { //sinon boucle ... if ($key === 'app') $serviceR = $this; else $serviceR = $container->get($service_); if($serviceR instanceof RechercheIndividuServiceInterface) { $rechercheServices[$key] = $serviceR; } } } $service->setSearchServices($rechercheServices); $usernamefield = $config['unicaen-auth']['local']['ldap']['username']; $service->setUsernameField($usernamefield); //Récupuration du cout des mots de passe pour le chiffrements $options = array_merge( $container->get('zfcuser_module_options')->toArray(), Loading