ldapservice = $ldapservice; } public function add(Niveau01 $entity, bool $flush = false): void { $this->getEntityManager()->persist($entity); if ($flush) { $this->getEntityManager()->flush(); } } public function remove(Niveau01 $entity, bool $flush = false): void { $this->getEntityManager()->remove($entity); if ($flush) { $this->getEntityManager()->flush(); } } /* Déterminer le niveau01 d'un user SSO en fonction de ses attributs */ public function calculateSSONiveau01($attruser) { $niveau01s = $this->_em->getRepository('App\Entity\Niveau01')->findAll(); foreach ($niveau01s as $niveau01) { if ($niveau01->getAttributes()) { $attniveau = json_decode($niveau01->getAttributes(), true); foreach ($attniveau as $key => $value) { if (array_key_exists($key, $attruser)) { if (is_array($attruser[$key])) { foreach ($attruser[$key] as $val) { if ('*' == $value) { return $niveau01; } elseif ($val == $value) { return $niveau01; } } } else { if ('*' == $value) { return $niveau01; } elseif ($value == $attruser[$key]) { return $niveau01; } } } } } } return false; } /* Déterminer le niveau01 d'un user LDAP */ public function calculateLDAPNiveau01($username) { $niveau01s = $this->_em->getRepository('App\Entity\Niveau01')->findAll(); foreach ($niveau01s as $niveau01) { if ($niveau01->getLdapfilter()) { $ismember = $this->ldapservice->findNiveau01ismember($niveau01->getLdapfilter(), $username); if ($ismember) { return $niveau01; } } } return false; } }