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

# ldap_exop_passwd

(PHP 7 >= 7.2.0, PHP 8)

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

### Описание

function ldap_exop_passwd(
LDAP\Connection `$ldap`,
string `$user` = "",
#[\SensitiveParameter]string `$old_password` = "",
#[\SensitiveParameter]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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open