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
'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
*
......@@ -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'];
}
......@@ -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);
}
/**
......
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