Commit de924209 authored by David Surville's avatar David Surville
Browse files

[Anomalie] Fonction de récupération de l'"OU" d'un utilisateur erronée

parent f2159ded
...@@ -25,30 +25,6 @@ class People extends BasePeople ...@@ -25,30 +25,6 @@ class People extends BasePeople
'RESP_ADMINISTRATIF' => 'R40', '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 * Détermine si l'individu est actif ou non
* *
...@@ -86,7 +62,7 @@ class People extends BasePeople ...@@ -86,7 +62,7 @@ class People extends BasePeople
*/ */
public function getOu() public function getOu()
{ {
if ($result = $this->getDn()->get(1)) { if ($result = $this->getNode()->getDn()->get(1)) {
return $result['ou']; return $result['ou'];
} }
...@@ -94,48 +70,80 @@ class People extends BasePeople ...@@ -94,48 +70,80 @@ class People extends BasePeople
} }
/** /**
* Retourne la liste des groupes dont l'utilisateur fait partie * Retourne le nom complet de cet individu LDAP.
* Si le groupe n'est plus valide à la date d'observation, alors il n'est pas retourné dans la liste
* *
* @param DateTime $dateObservation * @param boolean $nomEnMajuscule Mettre le nom de famille en majuscules ?
* @param string $orderBy Champ de tri (au besoin) * @param boolean $avecCivilite Inclure la civilité ?
* @return Group[] * @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);
} }
/** /**
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment