correctif sur mise à jour de niveau sso

This commit is contained in:
afornerot 2020-10-21 15:26:12 +02:00
parent 61abb269e4
commit 463cf49fe0
3 changed files with 26 additions and 27 deletions

View File

@ -128,7 +128,10 @@ class SecurityController extends Controller
$user->setLastname($lastname); $user->setLastname($lastname);
$user->setFirstname($firstname); $user->setFirstname($firstname);
$user->setEmail($email); $user->setEmail($email);
if(!$sameniveau01) $user->setNiveau02(null); if(!$sameniveau01) {
$user->setNiveau01($niveau01);
$user->setNiveau02(null);
}
if(in_array($username,$this->getParameter("ldap_usersadmin"))) if(in_array($username,$this->getParameter("ldap_usersadmin")))
$user->setRole("ROLE_ADMIN"); $user->setRole("ROLE_ADMIN");

View File

@ -60,19 +60,17 @@ class syncNiveau01 implements EventSubscriber
if ($entity instanceof Niveau01 && ($this->changeSiren||$this->changeLabel)) { if ($entity instanceof Niveau01 && ($this->changeSiren||$this->changeLabel)) {
// On change le SIRET de l'ensemble des utlisateurs associés à cet établissement // 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(); $qb = $this->em->createQueryBuilder();
$datas= $qb ->select('table')->from('CadolesCoreBundle:User','table') $q = $qb->update('CadolesCoreBundle:User','user')
->where('table.niveau01 = :id') ->set('user.labelniveau01', $qb->expr()->literal($entity->getLabel()))
->setParameter("id", $entity->getId()) ->set('user.siren', $qb->expr()->literal($entity->getSiren()))
->getQuery() ->where('user.niveau01 = :niveau01')
->getResult(); ->setParameter("niveau01", $entity->getId())
foreach($datas as $data) { ->getQuery();
$data->setSiren($entity->getSiren()); $q->execute();
$data->setLabelniveau01($entity->getLabel());
$this->em->persist($data);
$this->em->flush();
}
} }
} }

View File

@ -59,19 +59,17 @@ class syncNiveau02 implements EventSubscriber
} }
if ($entity instanceof Niveau02 && ($this->changeSiret||$this->changeLabel)) { if ($entity instanceof Niveau02 && ($this->changeSiret||$this->changeLabel)) {
// On change le SIRET de l'ensemble des utlisateurs associés à cet établissement // 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(); $qb = $this->em->createQueryBuilder();
$datas= $qb ->select('table')->from('CadolesCoreBundle:User','table') $q = $qb->update('CadolesCoreBundle:User','user')
->where('table.niveau02 = :id') ->set('user.labelniveau02', $qb->expr()->literal($entity->getSiret()))
->setParameter("id", $entity->getId()) ->set('user.siret', $qb->expr()->literal($entity->getSiren()))
->getQuery() ->where('user.niveau02 = :niveau02')
->getResult(); ->setParameter("niveau02", $entity->getId())
foreach($datas as $data) { ->getQuery();
$data->setSiret($entity->getSiret()); $q->execute();
$data->setLabelniveau02($entity->getLabel());
$this->em->persist($data);
$this->em->flush();
}
} }
} }