Ignore:
Timestamp:
07/28/08 16:55:05 (16 years ago)
Author:
niltonneto
Message:

Otimização da Ocorrência #268. Verifica somente uma vez, se
o usuário pode enviar por outro remetente.

File:
1 edited

Legend:

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

    r344 r371  
    595595                return false; 
    596596        } 
    597         function getSharedUsersFrom($params){            
    598                 $uids = explode(";",$params['uids']); 
    599  
    600                 $this->imap = new imap_functions(); 
     597        function getSharedUsersFrom($params){                                            
    601598                $filter = ''; 
    602  
    603                 foreach($uids as $index => $uid){ 
    604                         $params = array();               
    605                         $acl = $this->imap->getacltouser($uid); 
    606                         if(preg_match("/a/",$acl)) 
    607                                 $filter .= "(uid=$uid)"; 
    608                 } 
    609  
    610                 $this->ldapRootConnect(false); 
    611                 $filter="(&(phpgwAccountType=u)(|$filter))"; 
    612                 if ($this->ds) {                                         
     599                $i = 0; 
     600                if($params['uids']) { 
     601                        $uids = explode(";",$params['uids']);            
     602                        $this->imap = new imap_functions();              
     603                        foreach($uids as $index => $uid){ 
     604                                $params = array();               
     605                                $acl = $this->imap->getacltouser($uid); 
     606                                if(preg_match("/a/",$acl)) 
     607                                        $filter .= "(uid=$uid)"; 
     608                        } 
     609                } 
     610                 
     611                $this->ldapRootConnect(false);           
     612                if ($this->ds) { 
    613613                        $justthese = array("cn","mail"); 
    614                         $sr             =       ldap_search($this->ds, $this->ldap_context, $filter, $justthese); 
    615                         ldap_sort($this->ds,$sr,"cn");                   
    616                         $info   =       ldap_get_entries($this->ds, $sr); 
    617                         $info['myname'] = $_SESSION['phpgw_info']['expressomail']['user']['fullname'];                                           
    618                         for ($i = 0;$i < $info["count"]; $i++) 
    619                                 $info[$i]['cn'][0] = utf8_decode($info[$i]['cn'][0]); 
     614                        if($filter) { 
     615                                $filter="(&(phpgwAccountType=u)(|$filter))"; 
     616                                $sr             =       ldap_search($this->ds, $this->ldap_context, $filter, $justthese); 
     617                                ldap_sort($this->ds,$sr,"cn");                   
     618                                $info   =       ldap_get_entries($this->ds, $sr);                                                                                
     619                                for ($i = 0;$i < $info["count"]; $i++) 
     620                                        $info[$i]['cn'][0] = utf8_decode($info[$i]['cn'][0]); 
     621                        } 
     622                        $info['myname'] = $_SESSION['phpgw_info']['expressomail']['user']['fullname']; 
     623                         
     624                        //Find institucional_account. 
     625                        $filter="(&(phpgwAccountType=i)(mailForwardingAddress=".$_SESSION['phpgw_info']['expressomail']['user']['email']."))"; 
     626                        $sr     = ldap_search($this->ds, $this->ldap_context, $filter, $justthese);                      
     627                        if(!ldap_count_entries($this->ds,$sr)) 
     628                                return $info; 
     629                        ldap_sort($this->ds,$sr,"cn"); 
     630                        $result = ldap_get_entries($this->ds, $sr); 
     631                        for ($j = 0;$j < $result["count"]; $j++){ 
     632                                $info[$i]['cn'][0] = utf8_decode($result[$j]['cn'][0]); 
     633                                $info[$i++]['mail'][0] = $result[$j]['mail'][0]; 
     634                        } 
    620635                        return $info; 
    621636                } 
Note: See TracChangeset for help on using the changeset viewer.