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

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

[comment]: # ({99f1236b-b5ff62ed})
### Descrição

`object userdirectory.test(array userDirectory)`

Este método permite testar as configurações de conexão do diretório de usuários.

::: noteclassic
Este método também permite testar quais dados configurados correspondem às configurações do diretório de usuários para provisionamento de usuários
(por exemplo, qual função de usuário, grupos de usuários, mídias de usuários serão atribuídos ao usuário).
Para este tipo de teste, a solicitação da API deve ser feita para um [diretório de usuários](/manual/api/reference/userdirectory/object#userdirectory) que tenha `provision_status` definido como habilitado.
:::

::: noteclassic
Este método está disponível apenas para o tipo de usuário *Super admin*.
:::

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

[comment]: # ({72d24aee-d99c84a0})
### Parâmetros

`(object)` Propriedades do diretório de usuários.

Como a API `userdirectory.get` não retorna o campo `bind_password`, `userdirectoryid` e/ou `bind_password` devem ser fornecidos.<br>
Além das [propriedades padrão do diretório de usuários](object#userdirectory), o método aceita os seguintes parâmetros.

|Parâmetro|[Tipo](/manual/api/reference_commentary#data-types)|Descrição|
|--|--|------|
|test_username|string|Nome de usuário para testar no diretório de usuários.|
|test_password|string|Senha associada ao nome de usuário para testar no diretório de usuários.|

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

[comment]: # ({0a19e6a5-99a75467})
### Valores de retorno

`(bool)` Retorna verdadeiro em caso de sucesso.

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

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

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

[comment]: # ({0ec66727-9f73d089})
##### Testar o diretório de usuários para um usuário existente

Testar o diretório de usuários "3" para "user1".

[Requisição](/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
}
```

Resposta:

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

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

[comment]: # ({fa573532-a8a25347})
##### Testar diretório de usuário para usuário inexistente

Testar o diretório de usuário "3" para o "user2" inexistente.

[Requisição](/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
}
```

Resposta:

```json
{
    "jsonrpc": "2.0",
    "error": {
        "code": -32500,
        "message": "Application error.",
        "data": "Incorrect user name or password or account is temporarily blocked."
    },
    "id": 1
}
```

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

[comment]: # ({79a981ca-54c18b14})
##### Testar diretório de usuário para provisionamento de usuário

Testa o diretório de usuário "3" para quais dados configurados correspondem às configurações do diretório de usuário para o provisionamento de "user3"
(por exemplo, quais funções de usuário, grupos de usuários, mídias de usuário serão atribuídos ao usuário).

[Requisição](/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
}
```

Resposta:

```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})
### Origem

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

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