ldap_modify_batch
(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
Descrição
LDAP\Connection
$ldap
,string
$dn
,array
$modifications_info
,?array
$controls
= null
): bool
Modifica uma entrada existente no diretório LDAP. Permite especificação detalhada das modificações que serão realizadas.
Parâmetros
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 porattrib
. LDAP_MODIFY_BATCH_REMOVE
-
Cada valor especificado por
values
é removido do atributo nomeado porattrib
. Qualquer valor do atributo não contido no arrayvalues
não será afetado. LDAP_MODIFY_BATCH_REMOVE_ALL
-
Todos os valores são removidos do atributo nomeado por
attrib
. Uma entradavalues
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 porvalues
.
Observe que qualquer valor para
attrib
precisa ser uma string, qualquer valor paravalues
precisa ser um array de strings e qualquer valor paramodtype
precisa ser uma das constantes LDAP_MODIFY_BATCH_* listadas acima. controls
-
Array de Controles LDAP a enviar com a requisição.
Registro de Alterações
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 .
|
Exemplos
Example #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);
?>
Example #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);
?>
Example #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" => [
"[email protected]",
"[email protected]",
],
],
];
ldap_modify_batch($connection, $dn, $modifs);
?>
Example #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);
?>
Example #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);