CakeFest 2024: The Official CakePHP Conference

ldap_exop_passwd

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop_passwdОбёртка для расширенной операции PASSWD

Описание

ldap_exop_passwd(
    LDAP\Connection $ldap,
    string $user = "",
    string $old_password = "",
    string $new_password = "",
    array &$controls = null
): string|bool

Выполняет расширенную операцию 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";
}
?>

Смотрите также

  • ldap_exop() - Выполняет расширенную операцию
  • ldap_parse_exop() - Разбор результирующего объекта выполнения расширенной операции LDAP

add a note

User Contributed Notes 1 note

up
-26
dumm at tutoerilio dot gnu
5 years ago
Schnaberhagi summberliö rumbasuuna gumpperlimuss!
To Top