[comment]: # ({caf91c6b-f9e8f670})
# userdirectory.test

[comment]: # ({/caf91c6b-f9e8f670})

[comment]: # ({99f1236b-b5ff62ed})
### Описание

`object userdirectory.test(array userDirectory)`

Этот метод позволяет проверить настройки подключения к каталогу пользователей.

::: noteclassic
Этот метод также позволяет проверить, какие настроенные данные соответствуют параметрам каталога пользователей для подготовки пользователей
(например, какая роль пользователя, какие группы пользователей, какие медиа пользователя будут назначены пользователю).
Для такого типа проверки API-запрос следует выполнять для [каталога пользователей](/manual/api/reference/userdirectory/object#userdirectory), у которого `provision_status` установлен в enabled.
:::

::: noteclassic
Этот метод доступен только для типа пользователя *Super admin*.
:::

[comment]: # ({/99f1236b-b5ff62ed})

[comment]: # ({72d24aee-d99c84a0})
### Параметры

`(object)` Свойства каталога пользователей.

Поскольку API `userdirectory.get` не возвращает поле `bind_password`, необходимо указать `userdirectoryid` и/или `bind_password`.<br>
Помимо [стандартных свойств каталога пользователей](object#userdirectory), метод принимает следующие параметры.

|Параметр|[Тип](/manual/api/reference_commentary#data-types)|Описание|
|--|--|------|
|test_username|string|Имя пользователя для проверки в каталоге пользователей.|
|test_password|string|Пароль, связанный с именем пользователя, для проверки в каталоге пользователей.|

[comment]: # ({/72d24aee-d99c84a0})

[comment]: # ({0a19e6a5-99a75467})
### Возвращаемые значения

`(bool)` Возвращает true в случае успешного выполнения.

[comment]: # ({/0a19e6a5-99a75467})

[comment]: # ({b41637d2-47b9eb66})
### Примеры

[comment]: # ({/b41637d2-47b9eb66})

[comment]: # ({0ec66727-9f73d089})
##### Тестирование каталога пользователей для существующего пользователя

Проверка каталога пользователей "3" для "user1".

[Запрос](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "userdirectory.test",
    "params": {
        "userdirectoryid": "3",
        "host": "127.0.0.1",
        "port": "389",
        "base_dn": "ou=Users,dc=example,dc=org",
        "search_attribute": "uid",
        "bind_dn": "cn=ldap_search,dc=example,dc=org",
        "bind_password": "password",
        "test_username": "user1",
        "test_password": "password"
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": true,
    "id": 1
}
```

[comment]: # ({/0ec66727-9f73d089})

[comment]: # ({fa573532-a8a25347})
##### Тестирование каталога пользователей для несуществующего пользователя

Проверка каталога пользователей "3" для несуществующего "user2".

[Запрос](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "userdirectory.test",
    "params": {
        "userdirectoryid": "3",
        "host": "127.0.0.1",
        "port": "389",
        "base_dn": "ou=Users,dc=example,dc=org",
        "search_attribute": "uid",
        "bind_dn": "cn=ldap_search,dc=example,dc=org",
        "test_username": "user2",
        "test_password": "password"
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "error": {
        "code": -32500,
        "message": "Application error.",
        "data": "Неверное имя пользователя или пароль, либо учетная запись временно заблокирована."
    },
    "id": 1
}
```

[comment]: # ({/fa573532-a8a25347})

[comment]: # ({79a981ca-54c18b14})
##### Тестирование каталога пользователей для подготовки пользователей

Проверьте каталог пользователей "3", чтобы определить, какие настроенные данные соответствуют параметрам каталога пользователей для подготовки "user3"
(например, какая роль пользователя, группы пользователей и средства оповещения будут назначены пользователю).

[Запрос](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "userdirectory.test",
    "params": {
        "userdirectoryid": "2",
        "host": "host.example.com",
        "port": "389",
        "base_dn": "DC=zbx,DC=local",
        "search_attribute": "sAMAccountName",
        "bind_dn": "CN=Admin,OU=Users,OU=Zabbix,DC=zbx,DC=local",
        "test_username": "user3",
        "test_password": "password"
    },
    "id": 1
}
```

Ответ:

```json
{
    "jsonrpc": "2.0",
    "result": {
        "username": "user3",
        "name": "John",
        "surname": "Doe",
        "medias": [],
        "usrgrps": [
            {
                "usrgrpid": "8"
            },
            {
                "usrgrpid": "7"
            }
        ],
        "roleid": "2",
        "userdirectoryid": "2"
    },
    "id": 1
}
```

[comment]: # ({/79a981ca-54c18b14})

[comment]: # ({e28d4bf9-0402a0f4})
### Исходный код

CUserDirectory::test() в *ui/include/classes/api/services/CUserDirectory.php*.

[comment]: # ({/e28d4bf9-0402a0f4})
