Loading module/Application/src/Application/Entity/Db/Repository/IndividuRepository.php +1 −1 Changes for module/Application/src/Application/Entity/Db/Repository/IndividuRepository.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ class IndividuRepository extends DefaultEntityRepository // C'est l'identifiant trouvé dans le "supann{Ref|Emp|Etu}Id" présent dans les données d'authentification // qui nous permet de trouver l'Individu correspodant à l'Utilisateur. $supannId = $userWrapper->getSupannId(); if ($supannId === null) { if (! $supannId) { // Si on a rien à se mettre sous la dent, on ne cherche pas plus loin ! return null; } Loading module/Application/src/Application/Event/UserAuthenticatedEventListener.php +3 −1 Changes for module/Application/src/Application/Event/UserAuthenticatedEventListener.php: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -73,8 +73,10 @@ class UserAuthenticatedEventListener extends AuthenticatedUserSavedAbstractListe // renseigne le lien utilisateur-->individu /** @var Utilisateur $utilisateur */ $utilisateur = $e->getDbUser(); if ($individu !== null) { $this->utilisateurService->setIndividuForUtilisateur($individu, $utilisateur); } } /** * @param UserWrapper $userWrapper Loading Loading @@ -116,7 +118,7 @@ class UserAuthenticatedEventListener extends AuthenticatedUserSavedAbstractListe } } // création de l'Individu si besoin // création de l'Individu si besoin et si possible if ($createIndividu) { $individu = $this->individuService->createIndividuFromUserWrapperAndEtab($userWrapper, $etablissement); } Loading module/Application/src/Application/Provider/IdentityProvider.php +9 −1 Changes for module/Application/src/Application/Provider/IdentityProvider.php: 9 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -117,7 +117,12 @@ class IdentityProvider implements ProviderInterface, ChainableProvider */ private function getRolesFromActeur(): array { $acteurs = $this->acteurService->findAllActeursByUser($this->userWrapper); $individu = $this->userWrapper->getIndividu(); if ($individu === null) { return []; } $acteurs = $this->acteurService->getRepository()->findActeursByIndividu($individu); $acteursDirecteurThese = $this->acteurService->filterActeursDirecteurThese($acteurs); $acteursCoDirecteurThese = $this->acteurService->filterActeursCoDirecteurThese($acteurs); Loading @@ -139,13 +144,16 @@ class IdentityProvider implements ProviderInterface, ChainableProvider // peut-être disposons-nous de l'Individu (cas d'une authentification locale) $individu = $this->userWrapper->getIndividu(); $individuRoles = []; if ($individu !== null) { $individuRoles = $this->roleService->findIndividuRolesByIndividu($individu); } else { $id = $this->userWrapper->getSupannId(); if ($id) { $pattern = $this->sourceCodeStringHelper->generateSearchPatternForAnyPrefix($id); $individuRoles = $this->roleService->findIndividuRolesByIndividuSourceCodePattern($pattern); } } usort($individuRoles, IndividuRole::getComparisonFunction()); Loading module/Application/src/Application/Service/Individu/IndividuService.php +7 −26 Changes for module/Application/src/Application/Service/Individu/IndividuService.php: 7 added lines, 26 removed lines. Original line number Diff line number Diff line Loading @@ -82,10 +82,15 @@ class IndividuService extends BaseService Etablissement $etablissement, Utilisateur $utilisateur = null) { $sourceCode = $this->sourceCodeStringHelper->addEtablissementPrefixTo($userWrapper->getSupannId(), $etablissement); $supannId = $userWrapper->getSupannId(); if (! $supannId) { return null; } $sourceCode = $this->sourceCodeStringHelper->addEtablissementPrefixTo($supannId, $etablissement); $entity = new Individu(); $entity->setSupannId($userWrapper->getSupannId()); $entity->setSupannId($supannId); $entity->setNomUsuel($userWrapper->getNom() ?: "X"); // NB: le nom est obligatoire mais pas forcément disponible $entity->setNomPatronymique($userWrapper->getNom()); $entity->setPrenom($userWrapper->getPrenom()); Loading @@ -104,30 +109,6 @@ class IndividuService extends BaseService return $entity; } /** * @param Individu $entity * @param UserWrapper $userWrapper * @param Utilisateur $utilisateur */ public function updateIndividuFromUserWrapper(Individu $entity, UserWrapper $userWrapper, Utilisateur $utilisateur = null) { $entity->setSupannId($userWrapper->getSupannId()); $entity->setNomUsuel($userWrapper->getNom() ?: "X"); // NB: le nom est obligatoire mais quid si indisponible ? $entity->setNomPatronymique($userWrapper->getNom()); $entity->setPrenom($userWrapper->getPrenom()); $entity->setCivilite($userWrapper->getCivilite()); $entity->setEmail($userWrapper->getEmail()); $entity->setHistoModificateur($utilisateur ?: $this->getAppPseudoUtilisateur()); try { $this->getEntityManager()->flush($entity); } catch (OptimisticLockException $e) { throw new RuntimeException("Impossible d'enregistrer l'Individu", null, $e); } } /** * Met à jour le SOURCE_CODE d'un individu à partir de l'établissement spécifié. * Loading Loading
module/Application/src/Application/Entity/Db/Repository/IndividuRepository.php +1 −1 Changes for module/Application/src/Application/Entity/Db/Repository/IndividuRepository.php: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ class IndividuRepository extends DefaultEntityRepository // C'est l'identifiant trouvé dans le "supann{Ref|Emp|Etu}Id" présent dans les données d'authentification // qui nous permet de trouver l'Individu correspodant à l'Utilisateur. $supannId = $userWrapper->getSupannId(); if ($supannId === null) { if (! $supannId) { // Si on a rien à se mettre sous la dent, on ne cherche pas plus loin ! return null; } Loading
module/Application/src/Application/Event/UserAuthenticatedEventListener.php +3 −1 Changes for module/Application/src/Application/Event/UserAuthenticatedEventListener.php: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -73,8 +73,10 @@ class UserAuthenticatedEventListener extends AuthenticatedUserSavedAbstractListe // renseigne le lien utilisateur-->individu /** @var Utilisateur $utilisateur */ $utilisateur = $e->getDbUser(); if ($individu !== null) { $this->utilisateurService->setIndividuForUtilisateur($individu, $utilisateur); } } /** * @param UserWrapper $userWrapper Loading Loading @@ -116,7 +118,7 @@ class UserAuthenticatedEventListener extends AuthenticatedUserSavedAbstractListe } } // création de l'Individu si besoin // création de l'Individu si besoin et si possible if ($createIndividu) { $individu = $this->individuService->createIndividuFromUserWrapperAndEtab($userWrapper, $etablissement); } Loading
module/Application/src/Application/Provider/IdentityProvider.php +9 −1 Changes for module/Application/src/Application/Provider/IdentityProvider.php: 9 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -117,7 +117,12 @@ class IdentityProvider implements ProviderInterface, ChainableProvider */ private function getRolesFromActeur(): array { $acteurs = $this->acteurService->findAllActeursByUser($this->userWrapper); $individu = $this->userWrapper->getIndividu(); if ($individu === null) { return []; } $acteurs = $this->acteurService->getRepository()->findActeursByIndividu($individu); $acteursDirecteurThese = $this->acteurService->filterActeursDirecteurThese($acteurs); $acteursCoDirecteurThese = $this->acteurService->filterActeursCoDirecteurThese($acteurs); Loading @@ -139,13 +144,16 @@ class IdentityProvider implements ProviderInterface, ChainableProvider // peut-être disposons-nous de l'Individu (cas d'une authentification locale) $individu = $this->userWrapper->getIndividu(); $individuRoles = []; if ($individu !== null) { $individuRoles = $this->roleService->findIndividuRolesByIndividu($individu); } else { $id = $this->userWrapper->getSupannId(); if ($id) { $pattern = $this->sourceCodeStringHelper->generateSearchPatternForAnyPrefix($id); $individuRoles = $this->roleService->findIndividuRolesByIndividuSourceCodePattern($pattern); } } usort($individuRoles, IndividuRole::getComparisonFunction()); Loading
module/Application/src/Application/Service/Individu/IndividuService.php +7 −26 Changes for module/Application/src/Application/Service/Individu/IndividuService.php: 7 added lines, 26 removed lines. Original line number Diff line number Diff line Loading @@ -82,10 +82,15 @@ class IndividuService extends BaseService Etablissement $etablissement, Utilisateur $utilisateur = null) { $sourceCode = $this->sourceCodeStringHelper->addEtablissementPrefixTo($userWrapper->getSupannId(), $etablissement); $supannId = $userWrapper->getSupannId(); if (! $supannId) { return null; } $sourceCode = $this->sourceCodeStringHelper->addEtablissementPrefixTo($supannId, $etablissement); $entity = new Individu(); $entity->setSupannId($userWrapper->getSupannId()); $entity->setSupannId($supannId); $entity->setNomUsuel($userWrapper->getNom() ?: "X"); // NB: le nom est obligatoire mais pas forcément disponible $entity->setNomPatronymique($userWrapper->getNom()); $entity->setPrenom($userWrapper->getPrenom()); Loading @@ -104,30 +109,6 @@ class IndividuService extends BaseService return $entity; } /** * @param Individu $entity * @param UserWrapper $userWrapper * @param Utilisateur $utilisateur */ public function updateIndividuFromUserWrapper(Individu $entity, UserWrapper $userWrapper, Utilisateur $utilisateur = null) { $entity->setSupannId($userWrapper->getSupannId()); $entity->setNomUsuel($userWrapper->getNom() ?: "X"); // NB: le nom est obligatoire mais quid si indisponible ? $entity->setNomPatronymique($userWrapper->getNom()); $entity->setPrenom($userWrapper->getPrenom()); $entity->setCivilite($userWrapper->getCivilite()); $entity->setEmail($userWrapper->getEmail()); $entity->setHistoModificateur($utilisateur ?: $this->getAppPseudoUtilisateur()); try { $this->getEntityManager()->flush($entity); } catch (OptimisticLockException $e) { throw new RuntimeException("Impossible d'enregistrer l'Individu", null, $e); } } /** * Met à jour le SOURCE_CODE d'un individu à partir de l'établissement spécifié. * Loading