(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 — Executa modificações em lote em uma entrada LDAP
$ldap
,$dn
,$modifications_info
,$controls
= null
Modifica uma entrada existente no diretório LDAP. Permite especificação detalhada das modificações que serão realizadas.
ldap
Um recurso LDAP, retornado por ldap_connect().
dn
O nome distinto de uma entidade LDAP.
modifications_info
Um array que especifica as modificações a realizar. Cada entrada neste
array é um array associativo com duas ou três chaves:
attrib
corresponde ao nome do atributo a modificar,
modtype
corresponde ao tipo de modificação a realizar
e, dependendo do tipo de modificação, values
corresponde a um array de valores de atributo relevantes para a modificação.
Valores possíveis para modtype
incluem:
LDAP_MODIFY_BATCH_ADD
Cada valor especificado por values
é adicionado (como
um valor adicional) ao atributo nomeado por
attrib
.
LDAP_MODIFY_BATCH_REMOVE
Cada valor especificado por values
é removido
do atributo nomeado por attrib
. Qualquer valor do
atributo não contido no array values
não será afetado.
LDAP_MODIFY_BATCH_REMOVE_ALL
Todos os valores são removidos do atributo nomeado por
attrib
. Uma entrada values
não
pode ser fornecida.
LDAP_MODIFY_BATCH_REPLACE
Todos os valores atuais do atributo nomeado por
attrib
são substituídos pelos valores especificados
por values
.
Observe que qualquer valor para attrib
precisa ser uma string, qualquer
valor para values
precisa ser um array de strings e
qualquer valor para modtype
precisa ser uma das
constantes LDAP_MODIFY_BATCH_* listadas acima.
controls
Array de Controles LDAP a enviar com a requisição.
Versão | Descrição |
---|---|
8.1.0 |
O parâmetro ldap agora espera uma instância de LDAP\Connection;
anteriormente, um resource ldap link válido era esperado.
|
8.0.0 |
O parâmetro controls agora pode ser nulo; anteriormente, o padrão era [] .
|
7.3.0 |
Adicionado suporte para controls .
|
Exemplo #1 Adiciona um número de telefone a um contato
<?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);
?>
Exemplo #2 Renomeia um usuário
<?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);
?>
Exemplo #3 Adiciona dois endereços de e-mail a um usuário
<?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);
?>
Exemplo #4 Muda uma senha de usuário
<?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);
?>
Exemplo #5 Muda uma senha de usuário (Diretório Ativo)
<?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);