Req #64317 [Com]: [PATCH] add ldap_modify_batch function
| From: | martin dot keckeis1 at gmail dot com | Date: | Wed, 10 Jun 2015 11:05:40 +0000 |
| Subject: | Req #64317 [Com]: [PATCH] add ldap_modify_batch function | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-193296@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=64317&edit=1
ID: 64317
Comment by: martin dot keckeis1 at gmail dot com
Reported by: ondra dot hosek at gmail dot com
Summary: [PATCH] add ldap_modify_batch function
Status: Open
Type: Feature/Change Request
Package: LDAP related
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
This was already added in PHP 5.4: http://php.net/manual/en/function.ldap-modify-batch.php
Previous Comments:
------------------------------------------------------------------------
[2013-02-27 23:35:04] ondra dot hosek at gmail dot com
Description:
------------
Hi,
motivated by the impossibility of performing an Active Directory password change (not reset), which
requires a simultaneous REMOVE and ADD operation on the unicodePwd attribute of a user, I have set
out to write a function named ldap_modify_batch that would allow this.
The test script demonstrates the API of this function. I'll admit that this API (especially the
array-of-arrays-of-arrays part) is a bit weird and I'll gladly accept tips on how to streamline
it. There is also a (more complete but also more contrived) example in the function body itself.
Test script:
---------------
<?php
function adifyPw($pw)
{
$quoted = '"' . $pw . '"';
$utf16d = iconv("UTF-8", "UTF-16LE", $quoted);
return $utf16d;
}
$curPwd = adifyPw("Tr0ub4dor&3");
$newPwd = adifyPw("correct horse battery staple");
$conn = ldap_connect("ldaps://dc.ad.example.com/");
ldap_bind($conn, "john@ad.example.com", "Tr0ub4dor&3");
$mods = array(
array(
"attrib" => "unicodePwd",
"modtype" => LDAP_MODIFY_BATCH_REMOVE,
"values" => array($curPwd)
),
array(
"attrib" => "unicodePwd",
"modtype" => LDAP_MODIFY_BATCH_ADD,
"values" => array($newPwd)
)
);
ldap_modify_batch($conn, "cn=John Smith,ou=Accounting,dc=ad,dc=example,dc=com", $mods);
ldap_close($conn);
?>
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=64317&edit=1