(PHP 7 >= 7.2.0, PHP 8)
ldap_exop_passwd — Обёртка для расширенной операции PASSWD
$ldap,$user = "",$old_password = "",$new_password = "",&$controls = nullФункция выполняет расширенную операцию PASSWD.
ldapЭкземпляр класса LDAP\Connection, который возвращает функция ldap_connect().
userУникальное имя (DN) пользователя, для которого меняется пароль.
old_passwordСтарый пароль. В зависимости от конфигурации может быть опущен.
new_passwordНовый пароль. Может быть опущен, либо задан пустым для автогенерации пароля.
controlsЕсли для параметра задали значение, функция передаст с запросом запрос парольной политики заполнит это поле массивом управляющих констант LDAP, которые вернул запрос.
Функция возвращает новый пароль, если параметр new_password не задали
или задали пустым. Иначе функция возвращает true или false, в зависимости от
успешности выполнения.
| Версия | Описание |
|---|---|
| 8.1.0 |
Параметр ldap теперь ожидает экземпляр класса LDAP\Connection;
раньше параметр ждал ресурс (resource) ldap link .
|
| 8.0.0 |
Параметр controls теперь допускает значение null;
раньше значение по умолчанию равнялось [].
|
| 7.3.0 |
Добавили поддержку параметра controls
|
Пример #1 Расширенная операция PASSWD
<?php
$ds = ldap_connect("localhost"); // Предполагается, что LDAP-сервер запустили локально
if ($ds) {
// Привязываемся к нужному DN-имени
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
if (!$bind) {
echo "Невозможно привязаться к LDAP-серверу";
exit;
}
// Передаём PASSWD EXOP для смены пароля пользователя на новый случайный
$genpw = ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", "secret");
if ($genpw) {
// Задаём для привязки новый пароль
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", $genpw);
}
// Возвращаем старый пароль «secret»
ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", $genpw, "secret");
ldap_close($ds);
} else {
echo "Невозможно соединиться с LDAP-сервером";
}
?>