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->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");

View File

@ -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();
}
}

View File

@ -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();
}
}