Commit 03148db6 authored by Thibaut Vallee's avatar Thibaut Vallee
Browse files

Attribution du role par défaut

parent a70b0d70
Loading
Loading
Loading
Loading
Loading
+4 −0
Changes for CHANGELOG.md: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
CHANGELOG

0.5.3 (03/04/2026)
------------------
 Bug fixe : Attribution automatique du role par défaut pour un utilisateur qui n'en avait pas encore

0.5.2 (11/03/2026)
------------------
- Ajout de la constante PASSWORD_CAS 
+8 −6
Changes for api/src/Service/UtilisateurService.php: 8 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
namespace Unicaen\Utilisateur\Service;

use Doctrine\ORM\EntityManagerInterface;
use  Unicaen\Utilisateur\Model\UserInterface;

class UtilisateurService
{
@@ -12,23 +13,24 @@ class UtilisateurService
    {
    }

    public function setDefaultActiveRoleForUser($user): void
    public function setDefaultActiveRoleForUser(UserInterface $user): void
    {
        if (!$user->getActiveRole() && count($user->getFullRoles()) > 0) {
        if (!$user->getActiveRole() && !empty($user->getFullRoles())) {
            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) {
    public function setDefaultActivePerimetreRoleForUser(UserInterface $user): void
    {
        if (!$user->getActivePerimetreUserRole() &&  !empty($user->getFullRoles())) {
            $perimetresUserRoles = $user->getFullRoles()[0]?->getPerimetres();
            $perimetreUserRole = $perimetresUserRoles ? $perimetresUserRoles[0] : null;
            $perimetreUserRole = isset($perimetresUserRoles) ? $perimetresUserRoles[0] : null;
            if($perimetreUserRole){
                $user->setActivePerimetreUserRole($perimetreUserRole);
                $this->em->persist($user);
                $this->em->flush();
            }
        }
+4 −1
Changes for api/src/State/UtilisateurMeStateProvider.php: 4 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -38,9 +38,12 @@ readonly class UtilisateurMeStateProvider implements ProviderInterface

        $isPerimetreEnable = $this->privilegeService->isPerimetreEnable();

        if($isPerimetreEnable && ($user->getActivePerimetreUserRole() === null || $user->getActiveRole() === null)){
        if($user->getActiveRole() === null ){
            $this->utilisateurService->setDefaultActiveRoleForUser($user);
        }
        if($isPerimetreEnable && $user->getActivePerimetreUserRole() === null){
            $this->utilisateurService->setDefaultActivePerimetreRoleForUser($user);
        }

        $dto = new UtilisateurMeResource();
        $dto->id = $user->getId();