Skip to content
Snippets Groups Projects
Commit b53066f9 authored by surville's avatar surville
Browse files

[Evolution] Gestion de la modification de l'attribut "supannRefId" par étiquette

parent 8d66ec30
No related branches found
No related tags found
No related merge requests found
...@@ -341,13 +341,13 @@ class People extends Entity ...@@ -341,13 +341,13 @@ class People extends Entity
/** /**
* Attribut Ldap "dateDeNaissance" * Attribut Ldap "dateDeNaissance"
* *
* @deprecated Deprecated, use {@link self::setSchacDateOfBirth}
*
* @param array|string|DateTime|null $value * @param array|string|DateTime|null $value
* @param bool $append * @param bool $append
* @return self * @return self
* @throws Exception * @throws Exception
* @throws LdapException * @throws LdapException
* @deprecated Deprecated, use {@link self::setSchacDateOfBirth}
*
*/ */
public function setDateDeNaissance($value = null, $append = false) public function setDateDeNaissance($value = null, $append = false)
{ {
...@@ -391,13 +391,13 @@ class People extends Entity ...@@ -391,13 +391,13 @@ class People extends Entity
/** /**
* Attribut Ldap "dateFinInscription" * Attribut Ldap "dateFinInscription"
* *
* @deprecated Deprecated, use {@link self::setSchacExpiryDate}
*
* @param array|string|DateTime|null $value * @param array|string|DateTime|null $value
* @param bool $append * @param bool $append
* @return self * @return self
* @throws Exception * @throws Exception
* @throws LdapException * @throws LdapException
* @deprecated Deprecated, use {@link self::setSchacExpiryDate}
*
*/ */
public function setDateFinInscription($value = null, $append = false) public function setDateFinInscription($value = null, $append = false)
{ {
...@@ -922,8 +922,7 @@ class People extends Entity ...@@ -922,8 +922,7 @@ class People extends Entity
if (is_string($val)) { if (is_string($val)) {
if (preg_match("/^" . $supannLabel . "[\w\-]+$/", $val)) { if (preg_match("/^" . $supannLabel . "[\w\-]+$/", $val)) {
return $val; return $val;
} } elseif (preg_match("/^[\w\-]+$/", $val)) {
elseif(preg_match("/^[\w\-]+$/", $val)) {
return sprintf('%s%s', $supannLabel, $val); return sprintf('%s%s', $supannLabel, $val);
} }
} }
...@@ -1144,8 +1143,7 @@ class People extends Entity ...@@ -1144,8 +1143,7 @@ class People extends Entity
if (is_string($val)) { if (is_string($val)) {
if (preg_match("/^" . $supannLabel . "[\w\-]+$/", $val)) { if (preg_match("/^" . $supannLabel . "[\w\-]+$/", $val)) {
return $val; return $val;
} } elseif (preg_match("/^[\w\-]+$/", $val)) {
elseif(preg_match("/^[\w\-]+$/", $val)) {
return sprintf('%s%s', $supannLabel, $val); return sprintf('%s%s', $supannLabel, $val);
} }
} }
...@@ -1390,11 +1388,30 @@ class People extends Entity ...@@ -1390,11 +1388,30 @@ class People extends Entity
public function setSupannRefId($value = null, $append = false) public function setSupannRefId($value = null, $append = false)
{ {
$value = $this->preFormat($value); $value = $this->preFormat($value);
$value = array_filter($value, function ($v) {
return preg_match(self::$attribute_with_label_pattern, $v);
});
$this->appendOrNot('supannRefId', $value, $append); foreach ($value as $v) {
if (preg_match(self::$attribute_with_label_pattern, $v, $matches)) {
if ($append) {
$this->appendOrNot('supannRefId', $v, true);
} else {
$label = $matches['etiquette'];
$identifiant = $matches['identifiant'];
$currentValues = $this->preFormat($this->supannRefId);
array_walk($currentValues, function (&$cv) use ($label, $identifiant) {
if (preg_match("/^".$label."(?<identifiant>.+)$/", $cv, $matches)) {
if($matches['identifiant'] != $identifiant) {
$this->remove('supannRefId', $cv);
$cv = null;
}
}
});
if(!in_array($v, $currentValues)) {
$currentValues[] = $v;
}
$this->appendOrNot('supannRefId', array_filter($currentValues), false);
}
}
}
return $this; return $this;
} }
...@@ -1497,8 +1514,7 @@ class People extends Entity ...@@ -1497,8 +1514,7 @@ class People extends Entity
if (is_string($val)) { if (is_string($val)) {
if (preg_match("/^$corpsLabel\w+$/", $val)) { if (preg_match("/^$corpsLabel\w+$/", $val)) {
return $val; return $val;
} } elseif (preg_match("/^\w+$/", $val)) {
elseif(preg_match("/^\w+$/", $val)) {
return sprintf('%s%s', $corpsLabel, $val); return sprintf('%s%s', $corpsLabel, $val);
} }
} }
...@@ -1569,8 +1585,7 @@ class People extends Entity ...@@ -1569,8 +1585,7 @@ class People extends Entity
if (is_string($val)) { if (is_string($val)) {
if (preg_match("/^$supannLabel\w+$/", $val)) { if (preg_match("/^$supannLabel\w+$/", $val)) {
return $val; return $val;
} } elseif (preg_match("/^\w+$/", $val)) {
elseif(preg_match("/^\w+$/", $val)) {
return sprintf('%s%s', $supannLabel, $val); return sprintf('%s%s', $supannLabel, $val);
} }
} }
...@@ -1682,8 +1697,7 @@ class People extends Entity ...@@ -1682,8 +1697,7 @@ class People extends Entity
if (is_string($val)) { if (is_string($val)) {
if (preg_match("/^$siseLabel\w+$/", $val)) { if (preg_match("/^$siseLabel\w+$/", $val)) {
return $val; return $val;
} } elseif (preg_match("/^\w+$/", $val)) {
elseif(preg_match("/^\w+$/", $val)) {
return sprintf('%s%s', $siseLabel, $val); return sprintf('%s%s', $siseLabel, $val);
} }
} }
...@@ -1712,8 +1726,7 @@ class People extends Entity ...@@ -1712,8 +1726,7 @@ class People extends Entity
if (is_string($val)) { if (is_string($val)) {
if (preg_match("/^$siseLabel\w+$/", $val)) { if (preg_match("/^$siseLabel\w+$/", $val)) {
return $val; return $val;
} } elseif (preg_match("/^\w+$/", $val)) {
elseif(preg_match("/^\w+$/", $val)) {
return sprintf('%s%s', $siseLabel, $val); return sprintf('%s%s', $siseLabel, $val);
} }
} }
...@@ -1742,8 +1755,7 @@ class People extends Entity ...@@ -1742,8 +1755,7 @@ class People extends Entity
if (is_string($val)) { if (is_string($val)) {
if (preg_match("/^$siseLabel\w+$/", $val)) { if (preg_match("/^$siseLabel\w+$/", $val)) {
return $val; return $val;
} } elseif (preg_match("/^\w+$/", $val)) {
elseif(preg_match("/^\w+$/", $val)) {
return sprintf('%s%s', $siseLabel, $val); return sprintf('%s%s', $siseLabel, $val);
} }
} }
...@@ -1904,12 +1916,12 @@ class People extends Entity ...@@ -1904,12 +1916,12 @@ class People extends Entity
/** /**
* Attribut Ldap "sambaNTPassword" * Attribut Ldap "sambaNTPassword"
* @see setNtPassword
*
* @param string $value * @param string $value
* @return $this * @return $this
* @throws Exception * @throws Exception
* @throws LdapException * @throws LdapException
* @see setNtPassword
*
*/ */
public function setSambaNTPassword(string $value) public function setSambaNTPassword(string $value)
{ {
...@@ -1936,77 +1948,9 @@ class People extends Entity ...@@ -1936,77 +1948,9 @@ class People extends Entity
*/ */
public function setUcbnSquidHash(string $value) public function setUcbnSquidHash(string $value)
{ {
$value = "Unicaen:" . md5(sprintf('%s:Unicaen:%s', $this->get('supannAliasLogin'), $value)); $value = "Unicaen:" . md5(sprintf('%s:Unicaen:%s', $this->supannAliasLogin, $value));
$this->appendOrNot('ucbnSquidHash', $value, false); $this->appendOrNot('ucbnSquidHash', $value, false);
return $this; return $this;
} }
/**
* Retourne les structures auxquelles appartiennent la personne
*
* @return Structure[]
*/
public function getEduPersonOrgUnit()
{
$structure = $this->getService()->getServiceLocator()->get('ldapServiceStructure');
$dn = $this->eduPersonOrgUnitDN;
if (empty($dn)) return null;
return $structure->getAllBy($dn, 'dn');
}
/**
* Retourne la structure principale à laquelle appartient la personne
*
* @return Structure
*/
public function getEduPersonPrimaryOrgUnit()
{
$structure = $this->getService()->getServiceLocator()->get('ldapServiceStructure');
$dn = $this->eduPersonPrimaryOrgUnitDN;
if (empty($dn)) return null;
return $structure->getBy($dn, 'dn');
}
/**
* Retourne la structure d'affectation de la personne
*
* @todo à terminer
* @return Structure[]
* @throws \Exception
*/
public function getSupannEntiteAffectation()
{
throw new \Exception('Méthode pas finie');
$structure = $this->getService()->getServiceLocator()->get('ldapServiceStructure');
$codes = $this->getNode()->getAttribute('supannEntiteAffectation');
var_dump($codes);
return $structure->getBy($dn, 'dn');
}
/**
* Retourne la structure d'affectation de la personne
*
* @todo à terminer
* @return Structure
* @throws \Exception
*/
public function getSupannEntiteAffectationPrincipale()
{
throw new \Exception('Méthode pas finie');
$structure = $this->getService()->getServiceLocator()->get('ldapServiceStructure');
$codes = [];
$affectations = $this->getNode()->getAttribute('supannAffectation');
list($code, $description) = explode(';', $this->supannAffectation);
$code = $this->supannAffectation;
if (empty($dn)) return null;
return $structure->getBy($dn, 'dn');
}
} }
\ No newline at end of file
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
namespace UnicaenLdap\Entity; namespace UnicaenLdap\Entity;
use UnicaenLdap\Entity\Base\People as BasePeople;
use DateTime; use DateTime;
use UnicaenLdap\Entity\Base\People as BasePeople;
use UnicaenLdap\Entity\Base\Structure;
/** /**
* Classe de gestion des entités de la branche "people" de l'annuaire LDAP. * Classe de gestion des entités de la branche "people" de l'annuaire LDAP.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment