Ignore:
Timestamp:
06/08/07 15:18:19 (17 years ago)
Author:
niltonneto
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/instant_messenger/inc/class.contacts_im.inc.php

    r27 r32  
    1414                $this->db_user = new db_im();            
    1515        } 
     16         
     17        function set_session_ldap_users() 
     18        { 
     19                if(!isset($_SESSION['instant_messenger']['users_ldap'])) 
     20                        $this->users_auth_im(); 
     21                 
     22        } 
     23                 
     24        function users_auth_im() 
     25        { 
     26                $db_acls = $this->db_user->get_accounts_acl(); 
     27                 
     28                // UidNumbers db; 
     29                foreach($db_acls as $tmp) 
     30                        $uid_users .= "(uidNumber=".$tmp['acl_account'].")"; 
     31                 
     32                foreach($db_acls as $tmp) 
     33                        $uid_groups .= "(gidNumber=".$tmp['acl_account'].")"; 
     34                 
     35                // usuários; 
     36                $result_users = $this->ldap_users->list_users_ldap($uid_users); 
     37                 
     38                // grupos; 
     39                $result_groups = $this->ldap_users->list_groups_ldap($uid_groups); 
     40                 
     41                foreach($result_groups as $group_tmp){ 
     42                        $tmp = $group_tmp['members']; 
     43                        foreach($tmp as $value) 
     44                                $uid_members_group .= "(uid=".$value.")"; 
     45                } 
     46                 
     47                $uid_members = $this->ldap_users->list_users_ldap($uid_members_group); 
     48                $count = count($result_users); 
     49 
     50                for($i = 0; $i < count($uid_members); $i++){ 
     51                        $result_users[$count] = $uid_members[$i]; 
     52                        $count++; 
     53                } 
     54 
     55                foreach($result_users as $rs){ 
     56                        $uid[] = $rs['cn'].";".$rs['mail'].";".$rs['ou']; 
     57                } 
     58 
     59                natsort($uid); 
     60                $uid_un = @array_values(@array_unique($uid)); 
     61                 
     62                $t = 0; 
     63                foreach($uid_un as $utmp){ 
     64                        $array = explode(";",$utmp); 
     65                        $list_ldap[$t]['cn'] = $array[0]; 
     66                        $list_ldap[$t]['mail'] = $array[1]; 
     67                        $list_ldap[$t]['ou'] = $array[2]; 
     68                        $t++;                    
     69                } 
     70 
     71                $_SESSION['instant_messenger']['users_ldap'] = $list_ldap; 
     72                 
     73        } 
    1674                 
    1775        function list_contacts($param) 
    1876        { 
     77                $result_users = array(); 
    1978                $org_ldap = $param['ou']; 
    20                 $array_db = $this->db_user->get_accounts_acl(); 
    21                 $array_groups_ldap = array(); 
    22                 $j = 0; 
    23  
    24                 for($i=0 ; $i < count($array_db); $i++) 
    25                         $array_1[] = $this->ldap_users->list_users_ldap($org_ldap,"uidNumber", $array_db[$i]['acl_account']); 
    26          
    27                 for($i=0; $i < count($array_1); $i++){ 
    28                         if(array_key_exists("count",$array_1[$i])){ 
    29                                 $array_groups_ldap[] = $array_1[$i]['uidnumber']; 
    30                         }                
    31                 } 
     79                $i = 0; 
     80                $this->set_session_ldap_users(); 
    3281                 
    33                 for($i=0; $i < count($array_groups_ldap); $i++) 
    34                         $array_2[]['members'] = $this->ldap_users->list_groups_ldap($org_ldap,$array_groups_ldap[$i]); 
    35          
    36                 foreach($array_2 as $tmp){ 
    37                         if($tmp['members'] > 0){ 
    38                                 foreach($tmp['members'] as $tmp1)        
    39                                         $array_3[] = $tmp1; 
    40                         } 
    41                 } 
    42                  
    43                 for($i=0; $i < count($array_1); $i++) 
    44                         if($array_1[$i]['uid'] != "") 
    45                                 $array_3[] = $array_1[$i]['uid']; 
    46          
    47                 @natsort($array_3); 
    48                  
    49                 $array_4 = @array_values(@array_unique($array_3)); 
    50  
    51                 for($i=0; $i < count($array_4); $i++) 
    52                         $array_5[] = $this->ldap_users->list_users_ldap($org_ldap,"uid", $array_4[$i]); 
    53  
    54                 for($i=0 ; $i < count($array_5); $i++){ 
    55                         if($array_5[$i]['phpgwAccountVisible'] != "-1"){ 
    56                                 $array_6[] = $array_5[$i]['cn'] . ";" . $array_5[$i]['mail']; 
     82                foreach($_SESSION['instant_messenger']['users_ldap'] as $users){ 
     83                        if($users['ou'] == ("OU=".$org_ldap)){ 
     84                                $result_users[$i]['cn'] = $users['cn']; 
     85                                $result_users[$i]['mail'] = $users['mail']; 
     86                                $i++; 
    5787                        } 
    5888                } 
    5989 
    60                 sort($array_6);  
    61                  
    62                 for($i=0; $i < count($array_6); $i++){ 
    63                         $aux = explode(";", $array_6[$i]); 
    64                         $array_7[$j]['cn'] = $aux[0]; 
    65                         $array_7[$j]['mail'] = $aux[1];                  
    66                         $j++; 
    67                 } 
    68                  
    69                 if(count($array_7) > 0) 
    70                         return $array_7; 
     90                if(count($result_users) > 0) 
     91                        return $result_users; 
    7192                else 
    7293                        return 0; 
Note: See TracChangeset for help on using the changeset viewer.