Changeset 2094


Ignore:
Timestamp:
03/01/10 10:29:06 (14 years ago)
Author:
pedroerp
Message:

Ticket #928 - Utilizando CachedLDAP para encontrar usuários excluídos na busca do organograma.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/workflow/inc/class.so_userinterface.inc.php

    r2085 r2094  
    474474                        $ldapResult[$entries[$i]['uidnumber'][0]] = array('cn' => $entries[$i]['cn'][0], 'telephoneNumber' => $entries[$i]['telephonenumber'][0]); 
    475475 
     476                /* we will need to search into database 'cache' for users deleted in ldap */ 
     477                $cachedLDAP = $GLOBALS[ 'workflow' ][ 'factory' ] -> newInstance( 'CachedLDAP' ); 
     478                $cachedLDAP -> setOperationMode( $cachedLDAP -> OPERATION_MODE_DATABASE ); 
     479 
    476480                /* filling return array with employee's information */ 
    477481                $employees = array(); 
    478482                for ($i = 0; $i < count($result); $i++) { 
    479                         $employees []= array( 
    480                                         'area'                          => $result[$i]['area'], 
    481                                         'area_id'                       => $result[$i]['area_id'], 
    482                                         'funcionario_id'        => $result[$i]['funcionario_id'], 
    483                                         'cn'                            => empty($ldapResult[$result[$i]['funcionario_id']]['cn']) ? $result[$i]['funcionario_id'] : $ldapResult[$result[$i]['funcionario_id']]['cn'], 
    484                                         'telephoneNumber'       => empty($ldapResult[$result[$i]['funcionario_id']]['telephoneNumber']) ? '': $ldapResult[$result[$i]['funcionario_id']]['telephoneNumber'] 
    485                         ); 
     483 
     484                        $employee = array(); 
     485 
     486                        /* user deleted in ldap. Let's try to find him into database 'cache' */ 
     487                        if (empty($ldapResult[$result[$i]['funcionario_id']]['cn'])) { 
     488                                $entry = $cachedLDAP->getEntryByID($result[$i]['funcionario_id']); 
     489 
     490                                $employee['removed'] = is_null($entry['last_update']); 
     491 
     492                                if ($entry && !empty($entry['cn'])) 
     493                                        $employee['cn'] = $entry['cn']; 
     494                                /* we cant find it anywhere */ 
     495                                else 
     496                                        $employee['cn'] = $result[$i]['funcionario_id']; 
     497                        } 
     498                        else 
     499                                $employee['cn'] = $ldapResult[$result[$i]['funcionario_id']]['cn']; 
     500 
     501                        $employee['area']                               = $result[$i]['area']; 
     502                        $employee['area_id']                    = $result[$i]['area_id']; 
     503                        $employee['funcionario_id']     = $result[$i]['funcionario_id']; 
     504                        $employee['telephoneNumber']    = empty($ldapResult[$result[$i]['funcionario_id']]['telephoneNumber']) ? '': $ldapResult[$result[$i]['funcionario_id']]['telephoneNumber']; 
     505 
     506                        $employees []= $employee; 
    486507                } 
    487508 
Note: See TracChangeset for help on using the changeset viewer.