Loading api/src/Service/UtilisateurService.php 0 → 100644 +36 −0 Changes for api/src/Service/UtilisateurService.php: 36 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Unicaen\Utilisateur\Service; use Doctrine\ORM\EntityManagerInterface; class UtilisateurService { public function __construct( private EntityManagerInterface $em ) { } public function setDefaultActiveRoleForUser($user): void { if (!$user->getActiveRole() && count($user->getFullRoles()) > 0) { if(!$user->getFullRoles()[0]->getRole()){ return; } $user->setActiveRole($user->getFullRoles()[0]); $this->em->persist($user); $this->em->flush(); } if (!$user->getActivePerimetreUserRole() && count($user->getFullRoles()) > 0) { $perimetresUserRoles = $user->getFullRoles()[0]?->getPerimetres(); $perimetreUserRole = $perimetresUserRoles ? $perimetresUserRoles[0] : null; if($perimetreUserRole){ $user->setActivePerimetreUserRole($perimetreUserRole); $this->em->persist($user); $this->em->flush(); } } } } No newline at end of file api/src/State/UtilisateurMeStateProvider.php +5 −0 Changes for api/src/State/UtilisateurMeStateProvider.php: 5 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -9,12 +9,14 @@ use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Unicaen\Privilege\Service\PrivilegeService; use Unicaen\Utilisateur\Dto\PerimetreUtilisateurMeDto; use Unicaen\Utilisateur\Dto\UtilisateurMeResource; use Unicaen\Utilisateur\Service\UtilisateurService; readonly class UtilisateurMeStateProvider implements ProviderInterface { public function __construct( private Security $security, private PrivilegeService $privilegeService, private UtilisateurService $utilisateurService, private ParameterBagInterface $parameterBag, ) { } Loading @@ -32,6 +34,9 @@ readonly class UtilisateurMeStateProvider implements ProviderInterface $isPerimetreEnable = $this->privilegeService->isPerimetreEnable(); if($isPerimetreEnable && ($user->getActivePerimetreUserRole() === null || $user->getActiveRole() === null)){ $this->utilisateurService->setDefaultActiveRoleForUser($user); } $dto = new UtilisateurMeResource(); $dto->id = $user->getId(); Loading Loading
api/src/Service/UtilisateurService.php 0 → 100644 +36 −0 Changes for api/src/Service/UtilisateurService.php: 36 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace Unicaen\Utilisateur\Service; use Doctrine\ORM\EntityManagerInterface; class UtilisateurService { public function __construct( private EntityManagerInterface $em ) { } public function setDefaultActiveRoleForUser($user): void { if (!$user->getActiveRole() && count($user->getFullRoles()) > 0) { if(!$user->getFullRoles()[0]->getRole()){ return; } $user->setActiveRole($user->getFullRoles()[0]); $this->em->persist($user); $this->em->flush(); } if (!$user->getActivePerimetreUserRole() && count($user->getFullRoles()) > 0) { $perimetresUserRoles = $user->getFullRoles()[0]?->getPerimetres(); $perimetreUserRole = $perimetresUserRoles ? $perimetresUserRoles[0] : null; if($perimetreUserRole){ $user->setActivePerimetreUserRole($perimetreUserRole); $this->em->persist($user); $this->em->flush(); } } } } No newline at end of file
api/src/State/UtilisateurMeStateProvider.php +5 −0 Changes for api/src/State/UtilisateurMeStateProvider.php: 5 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -9,12 +9,14 @@ use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Unicaen\Privilege\Service\PrivilegeService; use Unicaen\Utilisateur\Dto\PerimetreUtilisateurMeDto; use Unicaen\Utilisateur\Dto\UtilisateurMeResource; use Unicaen\Utilisateur\Service\UtilisateurService; readonly class UtilisateurMeStateProvider implements ProviderInterface { public function __construct( private Security $security, private PrivilegeService $privilegeService, private UtilisateurService $utilisateurService, private ParameterBagInterface $parameterBag, ) { } Loading @@ -32,6 +34,9 @@ readonly class UtilisateurMeStateProvider implements ProviderInterface $isPerimetreEnable = $this->privilegeService->isPerimetreEnable(); if($isPerimetreEnable && ($user->getActivePerimetreUserRole() === null || $user->getActiveRole() === null)){ $this->utilisateurService->setDefaultActiveRoleForUser($user); } $dto = new UtilisateurMeResource(); $dto->id = $user->getId(); Loading