ldap_exop_passwd
(PHP 7 >= 7.2.0)
ldap_exop_passwd — Обертка для расширенной операции PASSWD
Описание
$ldap
, string $user
= ""
, string $old_password
= ""
, string $new_password
= ""
, array &$controls
= null
) : string|boolВыполняет расширенную операцию PASSWD.
Список параметров
-
ldap
-
Идентификатор соединения LDAP, полученный из ldap_connect().
-
user
-
Уникальное имя (DN) пользователя, для которого меняется пароль.
-
old_password
-
Старый пароль. В зависимости от конфигурации может быть опущен.
-
new_password
-
Новый пароль. Может быть опущен, либо задан пустым для автогенерации пароля.
-
controls
-
Если задано, то с запросом будет передан запрос парольной политики и это поле будет заполнено массивом управляющих констант LDAP, возвращенным запросом.
Возвращаемые значения
Возвращает новыый пароль, если параметр new_password
не задан,
либо задан пустым. Иначе возвращает true
или false
, в зависимости от
успешности выполнения.
Список изменений
Версия | Описание |
---|---|
8.0.0 |
controls теперь допускает значение null; ранее значение по умолчанию было [] .
|
7.3 |
Добавлена поддержка параметра 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";
}
?>
Смотрите также
- ldap_exop() - Выполнить расширенную операцию
- ldap_parse_exop() - Разбор результирующего объекта выполнения расширенной операции LDAP