diff --git a/src/UnicaenLdap/Entity/Base/People.php b/src/UnicaenLdap/Entity/Base/People.php index 3a1a8d5b82abc1fc0c3b0e82494813a239654521..01525191af09f3704b0ce4060e488989fc62f66a 100644 --- a/src/UnicaenLdap/Entity/Base/People.php +++ b/src/UnicaenLdap/Entity/Base/People.php @@ -102,6 +102,7 @@ class People extends Entity 'sambaSID', 'schacDateOfBirth', 'schacExpiryDate', + 'schacPersonalUniqueCode', 'sexe', 'sn', 'supannActivite', @@ -305,6 +306,7 @@ class People extends Entity '\[libelle=(?<libelle>.+)\]$/'; static protected $role_src_pattern = '/^(?<code>\d{4});(?<libelle>.+)$/'; static protected $service_etat_pattern = '/^(?<etiquette>\{[\w\-]+\})(?<value>(A|I|S){1})$/'; + static protected $personal_unique_code_pattern = '/^urn:schac:personalUniqueCode:(int:esi:)*(?<country_code>[\w]{2}):(?<code>.+)$/'; /** @@ -434,6 +436,27 @@ class People extends Entity return $this; } + /** + * Attribut Ldap "schacPersonalUniqueCode" + * + * @param array|string|null $value + * @param bool $append + * @return $this + * @throws Exception + * @throws LdapException + */ + public function setSchacPersonalUniqueCode($value = null, $append = false) + { + $value = $this->preFormat($value); + $value = array_filter($value, function ($v) { + return preg_match(self::$personal_unique_code_pattern, $v); + }); + + $this->appendOrNot('schacPersonalUniqueCode', $value, $append); + + return $this; + } + /** * Attribut Ldap "dateFinInscription" *