ldap_modify_batch
(PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0)
ldap_modify_batch — Mets en lot des modifications et les exécute sur une entrée LDAP
Description
$link_identifier
, string $dn
, array $entry
)Modifie une entrée existante dans un dossier LDAP. Permet de spécifier de façon détaillée les modifications à effectuer.
Liste de paramètres
-
link_identifier -
Un identifiant de lien LDAP, retourné par la fonction ldap_connect().
-
dn -
Le nom unique de l'entrée LDAP.
-
entry -
Un tableau qui spécifie les modifications à réaliser. Chaque entrée de ce tableau est un tableau associatif contenant deux ou trois clés : attrib correspond au nom de l'attribut à modifier, modtype correspond au type de modification à réaliser, et (suivant le type de modification) values correspond à un tableau de valeurs d'attribut correspondant à la modification.
Les valeurs possibles pour modtype sont :
-
LDAP_MODIFY_BATCH_ADD -
Chaque valeur spécifiée via values est ajoutée (comme valeur additionnelle) à l'attribut nommé par attrib.
-
LDAP_MODIFY_BATCH_REMOVE -
Chaque valeur spécifiée via values est supprimée depuis l'attribut nommée par attrib. Toutes les valeurs de l'attribut n'étant pas présentes dans le tableau values demeureront inchangées.
-
LDAP_MODIFY_BATCH_REMOVE_ALL -
Toutes les valeurs sont supprimées depuis l'attribut nommé par attrib. Une entrée values n'a pas besoin d'être fournie.
-
LDAP_MODIFY_BATCH_REPLACE -
Toutes les valeurs courantes de l'attribut nommé par attrib sont remplacées avec les valeurs spécifiées via le tableau values.
Notez que toutes les valeurs de attrib doivent être des chaînes de caractères, toutes les valeurs de values doivent être un tableau de chaînes de caractères, et toutes les valeurs de modtype doivent être une des constantes LDAP_MODIFY_BATCH_*.
-
Valeurs de retour
Cette fonction retourne TRUE en cas de
succès ou FALSE si une erreur survient.
Exemples
Exemple #1 Ajout d'un numéro de téléphone à un contact
<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "telephoneNumber",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => ["+1 555 555 1717"],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>
Exemple #2 Renomme un utilisateur
<?php
$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "sn",
"modtype" => LDAP_MODIFY_BATCH_REPLACE,
"values" => ["Smith-Jones"],
],
[
"attrib" => "givenName",
"modtype" => LDAP_MODIFY_BATCH_REPLACE,
"values" => ["Jack"],
],
];
ldap_modify_batch($connection, $dn, $modifs);
ldap_rename($connection, $dn, "cn=Jack Smith-Jones", NULL, TRUE);
?>
Exemple #3 Ajoute deux adresses emails à un utilisateur
<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "mail",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => [
"jack.smith@example.com",
"jack.smith-jones@example.com",
],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>
Exemple #4 Modifie le mot de passe d'un utilisateur
<?php
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=example,dc=com";
$modifs = [
[
"attrib" => "userPassword",
"modtype" => LDAP_MODIFY_BATCH_REMOVE,
"values" => ["Tr0ub4dor&3"],
],
[
"attrib" => "userPassword",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => ["correct horse battery staple"],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>
Exemple #5 Modifie le mot de passe d'un utilisateur (Active Directory)
<?php
function adifyPw($pw)
{
return iconv("UTF-8", "UTF-16LE", '"' . $pw . '"');
}
$dn = "cn=Jack Smith-Jones,ou=Wizards,dc=ad,dc=example,dc=com";
$modifs = [
[
"attrib" => "unicodePwd",
"modtype" => LDAP_MODIFY_BATCH_REMOVE,
"values" => [adifyPw("Tr0ub4dor&3")],
],
[
"attrib" => "unicodePwd",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => [adifyPw("correct horse battery staple")],
],
];
ldap_modify_batch($connection, $dn, $modifs);