Loading src/UnicaenLdap/Entity/People.php +53 −45 Changes for src/UnicaenLdap/Entity/People.php: 53 added lines, 45 removed lines. Original line number Diff line number Diff line Loading @@ -25,30 +25,6 @@ class People extends BasePeople 'RESP_ADMINISTRATIF' => 'R40', ]; /** * Retourne le nom complet de cet individu LDAP. * * @param boolean $nomEnMajuscule Mettre le nom de famille en majuscules ? * @param boolean $avecCivilite Inclure la civilité ? * @param boolean $prenomDabord Mettre le prénom avant le nom de famille ? * @return string */ public function getNomComplet($nomEnMajuscule = false, $avecCivilite = false, $prenomDabord = false) { $sn = $this->get('sn'); $sn = is_array($sn) ? current($sn) : $sn; if (!$sn) { return ''; } $nom = $nomEnMajuscule ? strtoupper($sn) : $sn; $prenom = $this->get('givenname'); $civilite = $avecCivilite ? ' ' . $this->get('supannCivilite') : null; return ($prenomDabord ? $prenom . ' ' . $nom : $nom . ' ' . $prenom) . $civilite; } /** * Détermine si l'individu est actif ou non * Loading Loading @@ -86,7 +62,7 @@ class People extends BasePeople */ public function getOu() { if ($result = $this->getDn()->get(1)) { if ($result = $this->getNode()->getDn()->get(1)) { return $result['ou']; } Loading @@ -94,48 +70,80 @@ class People extends BasePeople } /** * Retourne la liste des groupes dont l'utilisateur fait partie * Si le groupe n'est plus valide à la date d'observation, alors il n'est pas retourné dans la liste * Retourne le nom complet de cet individu LDAP. * * @param DateTime $dateObservation * @param string $orderBy Champ de tri (au besoin) * @return Group[] * @param boolean $nomEnMajuscule Mettre le nom de famille en majuscules ? * @param boolean $avecCivilite Inclure la civilité ? * @param boolean $prenomDabord Mettre le prénom avant le nom de famille ? * @return string */ public function getGroups(DateTime $dateObservation = null, $orderBy = null) public function getNomComplet($nomEnMajuscule = false, $avecCivilite = false, $prenomDabord = false) { $groupService = $this->getService()->getLdapGroupService(); $sn = $this->get('sn'); $sn = is_array($sn) ? current($sn) : $sn; return $groupService->filterValids($groupService->getAllBy($this->get('memberOf'), 'dn', $orderBy), $dateObservation); if (!$sn) { return ''; } $nom = $nomEnMajuscule ? strtoupper($sn) : $sn; $prenom = $this->get('givenname'); $civilite = $avecCivilite ? ' ' . $this->get('supannCivilite') : null; return ($prenomDabord ? $prenom . ' ' . $nom : $nom . ' ' . $prenom) . $civilite; } /** * Détermine si la personne est étudiante * Retourne le léocode associé à l'individu * * @return boolean * @return string|null */ public function estEtudiant() public function getLeocarteCode() { return 0 === strpos($this->uid, 'e'); $attributeValues = $this->preFormat($this->supannRefId); $label = $this->getLabel('LEOCODE'); $value = array_filter($attributeValues, function ($v) use ($label) { return preg_match("/^$label(?<identifiant>.+)$/", $v); }); return !empty($value) ? str_replace($label, '', array_values($value)[0]) : null; } /** * Détermine si la personne est un personnel * Retourne le code de la léocarte associée à l'individu * * @return boolean * @return string|null */ public function estPersonnel() public function getLeocarteCSN() { return 0 === strpos($this->uid, 'p'); $attributeValues = $this->preFormat($this->supannRefId); $label = $this->getLabel('UNICAEN', 'REVERSECSN'); $value = array_filter($attributeValues, function ($v) use ($label) { return preg_match("/^$label(?<identifiant>.+)$/", $v); }); return !empty($value) ? str_replace($label, '', array_values($value)[0]) : null; } /** * Détermine si la personne est un invité * Retourne la liste des groupes dont l'utilisateur fait partie * Si le groupe n'est plus valide à la date d'observation, alors il n'est pas retourné dans la liste * * @return boolean * @param DateTime $dateObservation * @param string $orderBy Champ de tri (au besoin) * @return Group[] */ public function estInvite() public function getGroups(DateTime $dateObservation = null, $orderBy = null) { return 0 === strpos($this->uid, 'i'); $groupService = $this->getService()->getLdapGroupService(); return $groupService->filterValids($groupService->getAllBy($this->get('memberOf'), 'dn', $orderBy), $dateObservation); } /** Loading Loading
src/UnicaenLdap/Entity/People.php +53 −45 Changes for src/UnicaenLdap/Entity/People.php: 53 added lines, 45 removed lines. Original line number Diff line number Diff line Loading @@ -25,30 +25,6 @@ class People extends BasePeople 'RESP_ADMINISTRATIF' => 'R40', ]; /** * Retourne le nom complet de cet individu LDAP. * * @param boolean $nomEnMajuscule Mettre le nom de famille en majuscules ? * @param boolean $avecCivilite Inclure la civilité ? * @param boolean $prenomDabord Mettre le prénom avant le nom de famille ? * @return string */ public function getNomComplet($nomEnMajuscule = false, $avecCivilite = false, $prenomDabord = false) { $sn = $this->get('sn'); $sn = is_array($sn) ? current($sn) : $sn; if (!$sn) { return ''; } $nom = $nomEnMajuscule ? strtoupper($sn) : $sn; $prenom = $this->get('givenname'); $civilite = $avecCivilite ? ' ' . $this->get('supannCivilite') : null; return ($prenomDabord ? $prenom . ' ' . $nom : $nom . ' ' . $prenom) . $civilite; } /** * Détermine si l'individu est actif ou non * Loading Loading @@ -86,7 +62,7 @@ class People extends BasePeople */ public function getOu() { if ($result = $this->getDn()->get(1)) { if ($result = $this->getNode()->getDn()->get(1)) { return $result['ou']; } Loading @@ -94,48 +70,80 @@ class People extends BasePeople } /** * Retourne la liste des groupes dont l'utilisateur fait partie * Si le groupe n'est plus valide à la date d'observation, alors il n'est pas retourné dans la liste * Retourne le nom complet de cet individu LDAP. * * @param DateTime $dateObservation * @param string $orderBy Champ de tri (au besoin) * @return Group[] * @param boolean $nomEnMajuscule Mettre le nom de famille en majuscules ? * @param boolean $avecCivilite Inclure la civilité ? * @param boolean $prenomDabord Mettre le prénom avant le nom de famille ? * @return string */ public function getGroups(DateTime $dateObservation = null, $orderBy = null) public function getNomComplet($nomEnMajuscule = false, $avecCivilite = false, $prenomDabord = false) { $groupService = $this->getService()->getLdapGroupService(); $sn = $this->get('sn'); $sn = is_array($sn) ? current($sn) : $sn; return $groupService->filterValids($groupService->getAllBy($this->get('memberOf'), 'dn', $orderBy), $dateObservation); if (!$sn) { return ''; } $nom = $nomEnMajuscule ? strtoupper($sn) : $sn; $prenom = $this->get('givenname'); $civilite = $avecCivilite ? ' ' . $this->get('supannCivilite') : null; return ($prenomDabord ? $prenom . ' ' . $nom : $nom . ' ' . $prenom) . $civilite; } /** * Détermine si la personne est étudiante * Retourne le léocode associé à l'individu * * @return boolean * @return string|null */ public function estEtudiant() public function getLeocarteCode() { return 0 === strpos($this->uid, 'e'); $attributeValues = $this->preFormat($this->supannRefId); $label = $this->getLabel('LEOCODE'); $value = array_filter($attributeValues, function ($v) use ($label) { return preg_match("/^$label(?<identifiant>.+)$/", $v); }); return !empty($value) ? str_replace($label, '', array_values($value)[0]) : null; } /** * Détermine si la personne est un personnel * Retourne le code de la léocarte associée à l'individu * * @return boolean * @return string|null */ public function estPersonnel() public function getLeocarteCSN() { return 0 === strpos($this->uid, 'p'); $attributeValues = $this->preFormat($this->supannRefId); $label = $this->getLabel('UNICAEN', 'REVERSECSN'); $value = array_filter($attributeValues, function ($v) use ($label) { return preg_match("/^$label(?<identifiant>.+)$/", $v); }); return !empty($value) ? str_replace($label, '', array_values($value)[0]) : null; } /** * Détermine si la personne est un invité * Retourne la liste des groupes dont l'utilisateur fait partie * Si le groupe n'est plus valide à la date d'observation, alors il n'est pas retourné dans la liste * * @return boolean * @param DateTime $dateObservation * @param string $orderBy Champ de tri (au besoin) * @return Group[] */ public function estInvite() public function getGroups(DateTime $dateObservation = null, $orderBy = null) { return 0 === strpos($this->uid, 'i'); $groupService = $this->getService()->getLdapGroupService(); return $groupService->filterValids($groupService->getAllBy($this->get('memberOf'), 'dn', $orderBy), $dateObservation); } /** Loading