Ignore:
Timestamp:
05/10/07 11:51:20 (17 years ago)
Author:
niltonneto
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoAdmin1_2/inc/class.ldap_functions.inc.php

    r23 r24  
    694694                { 
    695695                        $justthese = array("cn","uid","uidnumber"); 
    696                         $filter="(&(phpgwAccountType=u)(uid=".$entry[0]['memberuid'][$i]."))"; 
     696                         
     697                        // Montagem dinamica do filtro 
     698                        $filter="(&(phpgwAccountType=u)(|"; 
     699                        for ($k=0; (($k<10) && ($i<$entry[0]['memberuid']['count'])); $k++) 
     700                        { 
     701                                $filter .= "(uid=".$entry[0]['memberuid'][$i].")"; 
     702                                $i++; 
     703                        } 
     704                        $i--; 
     705                        $filter .= "))"; 
     706                         
    697707                        $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
    698708                        $user_entry = ldap_get_entries($this->ldap, $search); 
    699709 
    700                         if ($user_entry[0]['uid'][0] == '') 
    701                         { 
    702                                 $result['memberuid_info'][$i]['cn'] = '0-UID NAO EXISTE, corrigir manualmente: ' . $entry[0]['memberuid'][$i]; 
    703                                 $result['memberuid_info'][$i]['uid'] = $entry[0]['memberuid'][$i]; 
    704                                 $result['memberuid_info'][$i]['uidnumber'] = $entry[0]['memberuid'][$i]; 
    705                         } 
    706                         else 
    707                         { 
    708                                 $result['memberuid_info'][$i]['cn'] = $user_entry[0]['cn'][0]; 
    709                                 $result['memberuid_info'][$i]['uid'] = $user_entry[0]['uid'][0]; 
    710                                 $result['memberuid_info'][$i]['uidnumber'] = $user_entry[0]['uidnumber'][0]; 
    711                         } 
     710                        for ($j=0; $j<$user_entry['count']; $j++) 
     711                        { 
     712                                $result['memberuid_info'][$user_entry[$j]['uid'][0]]['cn'] = $user_entry[$j]['cn'][0]; 
     713                                $result['memberuid_info'][$user_entry[$j]['uid'][0]]['uidnumber'] = $user_entry[$j]['uidnumber'][0]; 
     714                                $result['memberuid_info'][$user_entry[$j]['uid'][0]]['type'] = 'u'; 
     715                        } 
     716                } 
     717                 
     718                // Retira o count do array 
     719                array_shift($entry[0]['memberuid']); 
     720                 
     721                // Checamos e-mails que não fazem parte do expresso. 
     722                // Criamos um array temporario 
     723                $tmp_array = array(); 
     724                foreach ($result['memberuid_info'] as $uid => $user_data) 
     725                { 
     726                        $tmp_array[] = $uid; 
     727                } 
     728 
     729                // Vemos a diferença 
     730                $array_diff = array_diff($entry[0]['memberuid'], $tmp_array); 
     731                 
     732                // Incluimos no resultado 
     733                foreach ($array_diff as $index=>$uid) 
     734                { 
     735                        $result['memberuid_info'][$uid]['cn'] = $uid; 
    712736                } 
    713737                 
     
    718742                                $result['sambaGroup'] = true; 
    719743                } 
     744 
    720745                return $result; 
    721746        }        
     
    726751                $search = ldap_search($this->ldap, $context, $filter); 
    727752                $entry = ldap_get_entries($this->ldap, $search); 
    728  
     753         
    729754                //Pega o dn do setor do usuario. 
    730755                $entry[0]['dn'] = strtolower($entry[0]['dn']); 
     
    734759                //Retira ultimo pipe. 
    735760                $sector_dn = substr($sector_dn,0,(strlen($sector_dn) - 1)); 
    736                  
     761                         
    737762                $result['context']                              = $sector_dn; 
    738763                $result['uidnumber']                    = $entry[0]['uidnumber'][0]; 
     
    742767                $result['accountStatus']                = $entry[0]['accountstatus'][0]; 
    743768                $result['phpgwAccountVisible']  = $entry[0]['phpgwaccountvisible'][0]; 
    744                  
     769                         
    745770                //Members 
    746771                for ($i=0; $i<$entry[0]['mailforwardingaddress']['count']; $i++) 
    747772                { 
    748                         $justthese = array("cn", "uidnumber", "uid", "phpgwaccounttype"); 
    749                         $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(mail=".$entry[0]['mailforwardingaddress'][$i]."))"; 
     773                        $justthese = array("cn", "uidnumber", "uid", "phpgwaccounttype", "mail"); 
     774                                 
     775                        // Montagem dinamica do filtro 
     776                        $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(|"; 
     777                        for ($k=0; (($k<10) && ($i<$entry[0]['mailforwardingaddress']['count'])); $k++) 
     778                        { 
     779                                $filter .= "(mail=".$entry[0]['mailforwardingaddress'][$i].")"; 
     780                                $i++; 
     781                        } 
     782                        $i--; 
     783                        $filter .= "))"; 
     784                                 
    750785                        $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
    751786                        $user_entry = ldap_get_entries($this->ldap, $search); 
    752                          
    753                         if ($user_entry['count'] != 0) 
    754                         { 
    755                                 $result['members_info'][$user_entry[0]['uidnumber'][0]]['uid'] = $user_entry[0]['uid'][0]; 
    756                                 $result['members_info'][$user_entry[0]['uidnumber'][0]]['cn'] = $user_entry[0]['cn'][0]; 
    757                                 $result['members_info'][$user_entry[0]['uidnumber'][0]]['type'] = $user_entry[0]['phpgwaccounttype'][0]; 
    758                                 $result['members_info'][$user_entry[0]['uidnumber'][0]]['mailforwardingaddress'] = $entry[0]['mailforwardingaddress'][$i]; 
    759                                 $result['members'][] = $user_entry[0]['uidnumber'][0]; 
    760                         } 
    761                         else 
    762                         { 
    763                                 $result['members_info'][$entry[0]['mailforwardingaddress'][$i]]['uid'] = $entry[0]['mailforwardingaddress'][$i]; 
    764                                 $result['members_info'][$entry[0]['mailforwardingaddress'][$i]]['cn'] = 'E-Mail nao encontrado (' . $entry[0]['mailforwardingaddress'][$i] . ')'; 
    765                                 $result['members_info'][$entry[0]['mailforwardingaddress'][$i]]['mailforwardingaddress'] = $entry[0]['mailforwardingaddress'][$i]; 
    766                                 $result['members'][] = $entry[0]['mailforwardingaddress'][$i]; 
    767                         } 
    768                 } 
    769                  
    770                 return $result; 
     787                                 
     788                        for ($j=0; $j<$user_entry['count']; $j++) 
     789                        { 
     790                                $result['members_info'][$user_entry[$j]['uidnumber'][0]]['uid'] = $user_entry[$j]['uid'][0]; 
     791                                $result['members_info'][$user_entry[$j]['uidnumber'][0]]['cn'] = $user_entry[$j]['cn'][0]; 
     792                                $result['members_info'][$user_entry[$j]['uidnumber'][0]]['type'] = $user_entry[$j]['phpgwaccounttype'][0]; 
     793                                $result['members_info'][$user_entry[$j]['uidnumber'][0]]['mail'] = $user_entry[$j]['mail'][0]; 
     794                                $result['members'][] = $user_entry[$j]['uidnumber'][0]; 
     795                        } 
     796                } 
     797 
     798                // Retira o count do array 
     799                array_shift($entry[0]['mailforwardingaddress']); 
     800 
     801                // Checamos e-mails que não fazem parte do expresso. 
     802                // Criamos um array temporario 
     803                $tmp_array = array(); 
     804                foreach ($result['members_info'] as $uid => $user_data) 
     805                { 
     806                        $tmp_array[] = $user_data['mail']; 
     807                } 
     808 
     809                // Vemos a diferença 
     810                $array_diff = array_diff($entry[0]['mailforwardingaddress'], $tmp_array); 
     811 
     812                // Incluimos no resultado 
     813                foreach ($array_diff as $index=>$mailforwardingaddress) 
     814                { 
     815                        $result['members_info'][$mailforwardingaddress]['uid'] = $mailforwardingaddress; 
     816                        $result['members_info'][$mailforwardingaddress]['cn'] = 'E-Mail nao encontrado'; 
     817                        $result['members_info'][$mailforwardingaddress]['mailforwardingaddress'] = $mailforwardingaddress; 
     818                        $result['members'][] = $mailforwardingaddress; 
     819                } 
     820                return $result;  
    771821        }        
    772822 
Note: See TracChangeset for help on using the changeset viewer.