supann: add generate_supannEntiteAffectationPrincipale

This commit is contained in:
Benjamin Renard 2023-02-10 11:19:24 +01:00
parent 85592f94fd
commit 1534a40c7b
Signed by: bn8
GPG key ID: 3E2E1CE1907115BC

View file

@ -203,6 +203,47 @@ function generate_eduPersonOrgUnitDN($ldapObject) {
return $retval;
}
/**
* Generation de la valeur de l'attribut supannEntiteAffectationPrincipale
* à partir de la valeur de l'attribut supannEntiteAffectation si elle est unique.
*
* @author Benjamin Renard <brenard@easter-eggs.com>
*
* @param LSldapObject $ldapObject L'objet ldap
*
* @return array|null|false La valeur de l'attribut supannEntiteAffectationPrincipale
* ou false si il y a un problème durant la génération
*/
function generate_supannEntiteAffectationPrincipale($ldapObject) {
if ( get_class($ldapObject -> attrs[ 'supannEntiteAffectation' ]) != 'LSattribute' ) {
LSerror :: addErrorCode(
'SUPANN_01',
array(
'dependency' => 'supannEntiteAffectation',
'attr' => 'supannEntiteAffectationPrincipale'
)
);
return false;
}
// Si des valeurs ont été fourni pour cet attribut par l'utilisateur, on les conserve
$affectations_principales = $ldapObject -> attrs[ 'supannEntiteAffectationPrincipale' ] -> getUpdateData();
if ($affectations_principales) return $affectations_principales;
// Sinon on prends la valeur de supannEntiteAffectation si elle est unique
$affectations = $ldapObject -> attrs[ 'supannEntiteAffectation' ] -> getUpdateData();
if (count($affectations) == 1)
return array($affectations[0]);
// Sinon on garde celle existante si elle est fait toujours partie de entites d'affecations de la personne
$affectations_principales = $ldapObject -> attrs[ 'supannEntiteAffectationPrincipale' ] -> getOldValue();
if ($affectations_principales && in_array($affectations_principales[0], $affectations))
return array($affectations_principales[0]);
// À défaut, l'attribut sera vide
return null;
}
/**
* Generation de la valeur de l'attribut eduPersonPrimaryOrgUnitDN
* à partir de la valeur de l'attribut supannEntiteAffectationPrincipale.