Changeset 371


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.

Location:
trunk/expressoMail1_2
Files:
2 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                } 
  • trunk/expressoMail1_2/js/draw_api.js

    r356 r371  
    17331733        // The element was loaded and populated...so return. 
    17341734        if(el_shared_users){     
     1735                // Nothing to work...so return. 
     1736                if(el_shared_users.options.length == 0) 
     1737                        return; 
    17351738                tr1_1.style.display = ''; 
    17361739                for (var x = 0; x < el_shared_users.options.length; x++) { 
     
    17611764      } 
    17621765    } 
    1763         // Nothing to work...so return. 
    1764         if(sharedUsers.length == 0)  
    1765                 return; 
    17661766 
    17671767        // Handler function for cExecute 
    17681768        var h_user = function(data) { 
    1769                 if(data.length == 0) { 
    1770                         return false;                    
    1771                 } 
    1772                 tr1_1.style.display = ''; 
    1773                 var _option = document.createElement("OPTION"); 
    1774                 _option.text =  '"'+data.myname+'" <'+Element("user_email").value+'>'; 
    1775                 _option.value  = data.myname+";"+Element("user_email").value; 
    1776                 sel_from.options[sel_from.options.length] = _option; 
    1777          
    1778                 var options = ''; 
    1779                 for (var x = 0; x < data.length; x++)   { 
     1769                if(data.length > 0) { 
     1770                        tr1_1.style.display = ''; 
    17801771                        var _option = document.createElement("OPTION"); 
    1781                         _option.text = '"'+data[x].cn[0] + '" <'+data[x].mail[0]+'>'; 
    1782                         _option.value = data[x].cn[0] + ';'+data[x].mail[0]; 
    1783                         sel_from.options[sel_from.options.length] = _option     ; 
    1784                 } 
    1785                  
     1772                        _option.text =  '"'+data.myname+'" <'+Element("user_email").value+'>'; 
     1773                        _option.value  = data.myname+";"+Element("user_email").value; 
     1774                        sel_from.options[sel_from.options.length] = _option; 
     1775         
     1776                        var options = ''; 
     1777                        for (var x = 0; x < data.length; x++)   { 
     1778                                var _option = document.createElement("OPTION"); 
     1779                                _option.text = '"'+data[x].cn[0] + '" <'+data[x].mail[0]+'>'; 
     1780                                _option.value = data[x].cn[0] + ';'+data[x].mail[0]; 
     1781                                sel_from.options[sel_from.options.length] = _option     ; 
     1782                        } 
     1783                } 
    17861784                var shared_users_from = Element("el_shared_users"); 
    17871785                if(!shared_users_from) { 
Note: See TracChangeset for help on using the changeset viewer.