From 463cf49fe0e5f44e81611e103ff3b82294c872c0 Mon Sep 17 00:00:00 2001 From: afornerot Date: Wed, 21 Oct 2020 15:26:12 +0200 Subject: [PATCH] =?UTF-8?q?correctif=20sur=20mise=20=C3=A0=20jour=20de=20n?= =?UTF-8?q?iveau=20sso?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/SecurityController.php | 5 +++- .../CoreBundle/EventListener/syncNiveau01.php | 24 +++++++++---------- .../CoreBundle/EventListener/syncNiveau02.php | 24 +++++++++---------- 3 files changed, 26 insertions(+), 27 deletions(-) diff --git a/src/ninegate-1.0/src/Cadoles/CASBundle/Controller/SecurityController.php b/src/ninegate-1.0/src/Cadoles/CASBundle/Controller/SecurityController.php index a3fd9e8d..20b6629c 100644 --- a/src/ninegate-1.0/src/Cadoles/CASBundle/Controller/SecurityController.php +++ b/src/ninegate-1.0/src/Cadoles/CASBundle/Controller/SecurityController.php @@ -128,7 +128,10 @@ class SecurityController extends Controller $user->setLastname($lastname); $user->setFirstname($firstname); $user->setEmail($email); - if(!$sameniveau01) $user->setNiveau02(null); + if(!$sameniveau01) { + $user->setNiveau01($niveau01); + $user->setNiveau02(null); + } if(in_array($username,$this->getParameter("ldap_usersadmin"))) $user->setRole("ROLE_ADMIN"); diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncNiveau01.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncNiveau01.php index 8d850ed3..97d3de62 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncNiveau01.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncNiveau01.php @@ -60,19 +60,17 @@ class syncNiveau01 implements EventSubscriber if ($entity instanceof Niveau01 && ($this->changeSiren||$this->changeLabel)) { - // On change le SIRET de l'ensemble des utlisateurs associés à cet établissement - $qb = $this->em->createQueryBuilder(); - $datas= $qb ->select('table')->from('CadolesCoreBundle:User','table') - ->where('table.niveau01 = :id') - ->setParameter("id", $entity->getId()) - ->getQuery() - ->getResult(); - foreach($datas as $data) { - $data->setSiren($entity->getSiren()); - $data->setLabelniveau01($entity->getLabel()); - $this->em->persist($data); - $this->em->flush(); - } + // On change le SIRET de l'ensemble des utlisateurs associés à ce Niveau01 + // Pas de déclencheur bdd car trop long + // La synchronisation journalière mettra à jour l'annuaire de l'utilisateur + $qb = $this->em->createQueryBuilder(); + $q = $qb->update('CadolesCoreBundle:User','user') + ->set('user.labelniveau01', $qb->expr()->literal($entity->getLabel())) + ->set('user.siren', $qb->expr()->literal($entity->getSiren())) + ->where('user.niveau01 = :niveau01') + ->setParameter("niveau01", $entity->getId()) + ->getQuery(); + $q->execute(); } } diff --git a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncNiveau02.php b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncNiveau02.php index 5fb322e6..0eab5252 100644 --- a/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncNiveau02.php +++ b/src/ninegate-1.0/src/Cadoles/CoreBundle/EventListener/syncNiveau02.php @@ -59,19 +59,17 @@ class syncNiveau02 implements EventSubscriber } if ($entity instanceof Niveau02 && ($this->changeSiret||$this->changeLabel)) { - // On change le SIRET de l'ensemble des utlisateurs associés à cet établissement - $qb = $this->em->createQueryBuilder(); - $datas= $qb ->select('table')->from('CadolesCoreBundle:User','table') - ->where('table.niveau02 = :id') - ->setParameter("id", $entity->getId()) - ->getQuery() - ->getResult(); - foreach($datas as $data) { - $data->setSiret($entity->getSiret()); - $data->setLabelniveau02($entity->getLabel()); - $this->em->persist($data); - $this->em->flush(); - } + // On change le SIREN de l'ensemble des utlisateurs associés à ce Niveau02 + // Pas de déclencheur bdd car trop long + // La synchronisation journalière mettra à jour l'annuaire de l'utilisateur + $qb = $this->em->createQueryBuilder(); + $q = $qb->update('CadolesCoreBundle:User','user') + ->set('user.labelniveau02', $qb->expr()->literal($entity->getSiret())) + ->set('user.siret', $qb->expr()->literal($entity->getSiren())) + ->where('user.niveau02 = :niveau02') + ->setParameter("niveau02", $entity->getId()) + ->getQuery(); + $q->execute(); } }