Projeto

Geral

Perfil

Melhoria #416

Retornar multiplos valores em consulta Ldap da Api

Adicionado por Mauricio Luiz Viani aproximadamente 5 anos atrás. Atualizado mais de 4 anos atrás.

Situação:
Fechada
Prioridade:
Normal
Atribuído para:
Categoria:
API
Início:
25/02/2019
Data prevista:
% Terminado:

100%


Descrição

Modificar o webservice Admin/SearchLdap da API para retornar um array com todas as entradas obtidas pela consulta.

Atualmente está sendo retornado sempre a primeira entrada encontrada.

Ver código expressoAdmin1_2/inc/class.functions.inc.php

Function getlist()

elseif( $type == 'api')
{
    $queryLDAP = ( ( unserialize($query) ) ? unserialize($query) : $query );
    $justthese = array("uidnumber", "uid", "cn", "mail", "dn", "cpf", "rg", "rgUF", "jpegPhoto");
    $search    = ldap_search( $ldap_conn, $contexts[0], "(&(phpgwAccountType=u)(".$queryLDAP[0]."=".$queryLDAP[1]."))", $justthese );
    $info     = ldap_get_entries( $ldap_conn, $search );
    $return = false;

    if( $info['count'] > 0  )
    {
        $return[0]['accountId']        = $info[0]['uidnumber'][0];
        $return[0]['accountLid']    = $info[0]['uid'][0];
        $return[0]['accountDn']        = $info[0]['dn'];
        $return[0]['accountCn']        = $info[0]['cn'][0];
        $return[0]['accountMail']    = $info[0]['mail'][0];
        $return[0]['accountCpf']    = $info[0]['cpf'][0];
        $return[0]['accountRG']        = $info[0]['rg'][0];
        $return[0]['accountRgUF']    = $info[0]['rguf'][0];
        $return[0]['accountPhoto'] = ((isset($info[0]['jpegphoto']['count']) && $info[0]['jpegphoto']['count'] == 1 ) ? true : false );
    }

    ldap_close($ldap_conn);

    return $return;
}

Histórico

#1 Atualizado por Mauricio Luiz Vianiaproximadamente 5 anos

  • Descrição atualizado(a) (diff)

#2 Atualizado por Mauricio Luiz Vianimais de 4 anos

  • Versão alterado de Backlog para Expresso Livre - Milestone 31

#3 Atualizado por Alexandre Luiz Correiamais de 4 anos

  • % Terminado alterado de 0 para 100
  • Atribuído para ajustado para Alexandre Luiz Correia
  • Situação alterado de Nova para Fechada

Obersvando e testando a rotina, relato que tal modificação para vários registro é desnecessária. Pois a consulta feita pela API, utiliza os seguintes filtros:

- Se for email : (&(phpgwAccountType=u)(mail=fulano@expressovm));
- Se for RG : (&(phpgwAccountType=u)(rg=000000));
- Se for CPF : (&(phpgwAccountType=u)(cpf=00000000000));
- Se for uid : (&(phpgwAccountType=u)(uid=fulano));

Dentre os parâmetros acima, o único que aceita mais de uma entrada no LDAP é o campo RG. Sendo assim todos os outros voltaram apenas um usuário do catálogo LDAP.

Exportar para Atom PDF