diff --git a/src/UnicaenLdap/Entity/Base/People.php b/src/UnicaenLdap/Entity/Base/People.php index ed6eee7a2e11818a52fa32f06a38c7fa95625eaf..6f1c0a14b621af26c01e04d1c68f33e3d9c90a62 100644 --- a/src/UnicaenLdap/Entity/Base/People.php +++ b/src/UnicaenLdap/Entity/Base/People.php @@ -55,6 +55,7 @@ class People extends Entity 'supannPerson', 'schacPersonalCharacteristics', 'schacEntryMetadata', + 'schacLinkageIdentifiers', 'ucbnEmp', 'ucbnEtu', 'posixAccount', @@ -102,6 +103,7 @@ class People extends Entity 'sambaSID', 'schacDateOfBirth', 'schacExpiryDate', + 'schacPersonalUniqueCode', 'sexe', 'sn', 'supannActivite', @@ -305,6 +307,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 +437,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" *