(PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0, PHP 7, PHP 8)
ldap_modify_batch — Mets en lot des modifications et les exécute sur une entrée LDAP
$ldap,$dn,$modifications_info,$controls = nullModifie une entrée existante dans un dossier LDAP. Permet de spécifier de façon détaillée les modifications à effectuer.
ldapUne ressource LDAP, retourné par la fonction ldap_connect().
dnLe nom unique de l'entrée LDAP.
modifications_info
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_*.
controlsTableau de Contrôles LDAP à envoyer avec la requête.
| Version | Description |
|---|---|
| 8.1.0 |
Le paramètre ldap attend désormais une instance de
LDAP\Connection ; auparavant, une resource ldap link était attendue.
|
| 8.0.0 |
controls est désormais nullable ; auparavant, sa valeur par défaut était [].
|
| 7.3.0 |
Support pour controls a été ajouté.
|
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);