(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 — Agrupa modificaciones y las ejecuta en una entrada LDAP
$ldap
,$dn
,$modifications_info
,$controls
= null
Modifica una entrada existente en un directorio LDAP. Permite especificar de manera detallada las modificaciones a realizar.
ldap
Un recurso LDAP, devuelto por la función ldap_connect().
dn
El nombre único de la entrada LDAP.
modifications_info
Un array que especifica las modificaciones a realizar. Cada entrada
de este array es un array asociativo que contiene dos o tres claves:
attrib
corresponde al nombre del atributo a modificar,
modtype
corresponde al tipo de modificación a realizar,
y (según el tipo de modificación) values
corresponde
a un array de valores de atributo correspondiente a la modificación.
Los valores posibles para modtype
son:
LDAP_MODIFY_BATCH_ADD
Cada valor especificado mediante values
se añade
(como valor adicional) al atributo nombrado por attrib
.
LDAP_MODIFY_BATCH_REMOVE
Cada valor especificado mediante values
se elimina
del atributo nombrado por attrib
. Todos los
valores del atributo que no estén presentes en el array
values
permanecerán sin cambios.
LDAP_MODIFY_BATCH_REMOVE_ALL
Todos los valores se eliminan del atributo nombrado por
attrib
. No es necesario proporcionar una entrada values
.
LDAP_MODIFY_BATCH_REPLACE
Todos los valores actuales del atributo nombrado por
attrib
se reemplazan con los valores
especificados mediante el array values
.
Tenga en cuenta que todos los valores de attrib
deben ser
strings, todos los valores de values
deben ser un array de strings, y todos los valores
de modtype
deben ser una de las constantes
LDAP_MODIFY_BATCH_*.
controls
Array de Controles LDAP a enviar con la petición.
Versión | Descripción |
---|---|
8.1.0 |
The ldap parameter expects an LDAP\Connection
instance now; previously, a valid ldap link recurso was expected.
|
8.0.0 |
controls is nullable now; previously, it defaulted to [] .
|
7.3.0 |
Se ha añadido soporte para controls .
|
Ejemplo #1 Añadir un número de teléfono a un contacto
<?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);
?>
Ejemplo #2 Renombrar un usuario
<?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);
?>
Ejemplo #3 Añadir dos direcciones de correo electrónico a un usuario
<?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);
?>
Ejemplo #4 Modificar la contraseña de un usuario
<?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);
?>
Ejemplo #5 Modificar la contraseña de un usuario (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);