ldap_modify_batch

(PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0, PHP 7)

ldap_modify_batchMets en lot des modifications et les exécute sur une entrée LDAP

Description

ldap_modify_batch ( resource $link_identifier , string $dn , array $entry [, array $serverctrls = array() ] ) : bool

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_*.

serverctrls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Historique

Version Description
7.3 Support pour serverctrls a été ajouté.

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"NULLTRUE);
?>

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"  => [
            
"[email protected]",
            
"[email protected]",
        ],
    ],
];
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);