Changeset 5246 for branches/2.3


Ignore:
Timestamp:
12/13/11 13:05:05 (12 years ago)
Author:
brunocosta
Message:

Ticket #2377 - Alteração das pesquisas para adaptação ao LDAP para nuvem.

Location:
branches/2.3/expressoMail1_2
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/2.3/expressoMail1_2/inc/class.ldap_functions.inc.php

    r4906 r5246  
    171171 
    172172                        // New search only on user sector 
    173                         if ($count_entries > $this->max_result) 
     173                        if ($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['cloud_ldap'] || $count_entries > $this->max_result) 
    174174                        { 
    175175                                // Close old ldap conection 
     
    190190                                        return $return; 
    191191                                } 
    192                                 else 
    193                                 { 
    194                                         $quickSearch_only_in_userSector = true; 
     192                                elseif($count_entries < 1){ 
     193                                    $return = array(); 
     194                                    return $return; 
     195 
     196                                }else 
     197                                { 
     198                                        if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['cloud_ldap']) 
     199                                            $quickSearch_cloud = true; 
     200                                        else 
     201                                            $quickSearch_only_in_userSector = true; 
    195202                                } 
    196203                        } 
     
    226233                        for ($i=0; $i<$info["count"]; $i++) 
    227234                        { 
    228                                 if ($quickSearch_only_in_userSector) 
     235                                if ($quickSearch_only_in_userSector || $quickSearch_cloud) 
    229236                                { 
    230237                                        $tmp[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count'] . '%' . $info[$i]["employeenumber"][0] . '%' . $info[$i]["ou"][0]] = utf8_decode($info[$i]["cn"][0]); 
     
    260267                                } 
    261268                                $contacts_result['quickSearch_only_in_userSector'] = $quickSearch_only_in_userSector; 
     269                                $contacts_result['quickSearch_cloud'] = $quickSearch_cloud; 
    262270                        } 
    263271                        else 
     
    303311                                                return $return; 
    304312                                        } 
     313                                } 
     314                                if ($quickSearch_cloud) 
     315                                { 
     316                                                $head_option = 
     317                                                        '<tr class="quicksearchcontacts_unselected">' . 
     318                                                                '<td colspan="2" width="100%" align="center">' . 
     319                                                                        $this->functions->getLang('Showing only the results found in your organization') . '.'. 
     320                                                                        '<input id="QuickSearchUser_button_search" type="button" onclick="QuickSearchUser.close_window();openListUsers(\'1\');" value="busca avançada">'. 
     321                                                                '</td>' . 
     322                                                        '</tr>'; 
     323 
     324 
     325 
     326                                                $contacts_result = $head_option . $options_users_from_user_org . $options; 
     327 
    305328                                } 
    306329                                else 
     
    414437                $organizations = array(); 
    415438                $params['referral']?$referral = $params['referral']:$referral = false; 
     439                $params['organization']?$org = "ou=".$params['organization'].",":$org = ""; 
    416440                $cat = $params['catalog']; 
    417  
    418                 $this->ldapConnect($referral,$cat); 
    419  
    420                         if($this->branch != '') { 
    421                                 $filter="(&(".$this->branch."=*)(!(phpgwAccountVisible=-1)))"; 
    422                                 $justthese = array("$this->branch"); 
    423                         $sr = ldap_list($this->ds, $this->ldap_context, $filter, $justthese); 
    424                         $info = ldap_get_entries($this->ds, $sr); 
    425  
    426                         if($info["count"] == 0) 
    427                         { 
    428                             $organizations[0]['ou'] = $this->ldap_context; 
    429                         } 
    430  
    431                         for ($i=0; $i<$info["count"]; $i++) 
    432                                 $organizations[$i] = $info[$i]["ou"][0]; 
    433  
    434                         ldap_close($this->ds); 
    435                         sort($organizations); 
    436                 return $organizations; 
    437                         }else{ 
     441                // primeiro nível de ou 
     442                $this->ldapConnect($referral,$cat); 
     443                if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['cloud_ldap'] && $cat == 0) 
     444                { 
     445                    $fistOu = substr($_SESSION['phpgw_info']['expressomail']['user']['account_dn'],strripos($_SESSION['phpgw_info']['expressomail']['user']['account_dn'], "ou=")); 
     446                } 
     447                else 
     448                { 
     449                    $fistOu = $this->ldap_context; 
     450                } 
     451                if($this->branch != '') { 
     452                    $filter="(&(".$this->branch."=*)(!(phpgwAccountVisible=-1)))"; 
     453                    $justthese = array("$this->branch"); 
     454                    $sr = ldap_list($this->ds, $org.$fistOu, $filter, $justthese); 
     455                    $info = ldap_get_entries($this->ds, $sr); 
     456                    if($info["count"] == 0) 
     457                    { 
     458                        return null; 
     459                    } 
     460                    for ($i=0; $i<$info["count"]; $i++) 
     461                        $organizations[$i] = $info[$i]["ou"][0]; 
     462                    ldap_close($this->ds); 
     463                    sort($organizations); 
     464                    return $organizations; 
     465                }else{ 
    438466                        return null; 
    439         } 
     467            } 
    440468        } 
    441469        function get_organizations2($params){ 
     
    540568                $this->ldapConnect(true,$catalog); 
    541569 
    542                 $params['organization'] == 'all' ? $user_context = $this->ldap_context :$user_context = $this->branch."=".$params['organization'].",".$this->ldap_context; 
    543  
     570                if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['cloud_ldap'] && $catalog == 0) 
     571                    $fistOu = substr($_SESSION['phpgw_info']['expressomail']['user']['account_dn'],strripos($_SESSION['phpgw_info']['expressomail']['user']['account_dn'], "ou=")); 
     572                else 
     573                    $fistOu = $this->ldap_context; 
     574                 
     575                if($params['organization_sub'] =="") 
     576                    $params['organization_sub'] =="all"; 
     577                 
     578                $params['organization'] == 'all' ? $user_context = $fistOu :$user_context = $this->branch."=".$params['organization'].",".$fistOu; 
     579                $params['organization_sub'] == 'all' ? $user_context = $user_context :$user_context = $this->branch."=".$params['organization_sub'].",".$user_context; 
    544580                if ($this->ds) { 
    545581                        if ($catalog == 0){ 
  • branches/2.3/expressoMail1_2/index.php

    r4324 r5246  
    7878        $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['telephone_number'] = $GLOBALS['phpgw_info']['user']['telephonenumber']; 
    7979        $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_cache'] = $current_config['expressoMail_enable_cache']; 
     80        $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['cloud_ldap'] = $current_config['expressoMail_cloud_ldap']; 
    8081        $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_x_origin'] = $current_config['expressoMail_use_x_origin']; 
    8182        $_SESSION['phpgw_info']['user']['preferences']['expressoMail']['number_of_contacts'] = $current_config['expressoMail_Number_of_dynamic_contacts'] ? $current_config['expressoMail_Number_of_dynamic_contacts'] : "0"; 
  • branches/2.3/expressoMail1_2/js/QuickCatalogSearch.js

    r5102 r5246  
    6666                                title_innerHTML += "<font color='BLACK' nowrap> ("+get_lang('Showing only the results found in your organization')+".)</font>" 
    6767 
     68                        if (preferences.cloud_ldap) 
     69                        { 
     70                             title_innerHTML += "<font color='BLACK' nowrap> ("+get_lang('Showing only the results found in your organization')+".)</font>"; 
     71                        } 
     72 
    6873                        var title = document.createElement("SPAM"); 
    6974                        title.id = 'window_QuickCatalogSearch_title'; 
     
    98103                        butt.onclick = func_add_contact; 
    99104                        el_A.appendChild(butt); 
     105                        if(preferences.cloud_ldap) 
     106                        { 
     107                            var butt = document.createElement('BUTTON'); 
     108                            butt.id = "QuickCatalogSearch_button_search"; 
     109                            var buttext = document.createTextNode(get_lang("Advanced search")); 
     110                            butt.appendChild(buttext); 
     111                            butt.onclick = function(){openListUsers("1");QuickCatalogSearch.close_QuickSearch_window(data.field, data.ID);}; 
     112                            el_A.appendChild(butt); 
     113                        } 
    100114 
    101115                if (document.getElementById('select_QuickCatalogSearch') == null){ 
     
    321335                        win = this.arrayWin[el.id]; 
    322336                        win.open(); 
     337                        Element('search_for').value = ""; 
     338                        if(this.search){ 
     339                            Element('search_for').value = this.search; 
     340                            write_msg("No user found by this search in you organization"); 
     341                            this.search = null; 
     342                        } 
    323343                        return;          
    324344                } 
     
    344364                                           '<table border="0" cellpading="0" cellspacing="0">'+ 
    345365                                           '<tr><td>'+get_lang("Select an organization and click on button <b>Search</b>")+'&nbsp;:</td></tr>'+ 
    346                                         '<tr><td><select style="display:none;width:150px" id="select_catalog" name="select_catalog" onchange="javascript:QuickCatalogSearch.update_organizations();"></select>&nbsp'+ 
    347                                         '<select id="select_organization" style="width:150px" name="select_organization"></select>&nbsp;'+    
     366                                        '<tr><td><select style="display:none;width:100px" id="select_catalog" name="select_catalog" onchange="javascript:QuickCatalogSearch.update_organizations();"></select>&nbsp'+ 
     367                                        '<select id="select_organization" style="width:100px" name="select_organization" onchange="javascript:QuickCatalogSearch.update_organizations_sub();" ></select>&nbsp;'+ 
     368                                        '<select id="select_organization_sub" style="width:100px;display:none;" name="select_organization_sub"></select>&nbsp;'+ 
    348369                                        '<input type="text" id="search_for" name="search_for" value="" size="30" maxlength="30"/>&nbsp;<input type="button" onclick="QuickCatalogSearch.searchCatalogList(true)" class="button" value="'+get_lang('Search')+'">&nbsp;<input style="display:visible" type="button" onclick="QuickCatalogSearch.searchCatalogList(false)" class="button" value="'+get_lang('List All')+'"></td></tr>'+ 
    349370                                           '<tr><td><input onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" id="type_l" type="radio" name="type" value="l"/>'+get_lang('Public Lists')+'&nbsp;&nbsp;<input type="radio" id="type_u" name="type" value="u" onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" checked/>'+get_lang('Users')+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+ 
     
    386407                }; 
    387408 
    388                 win = new dJSWin({                       
     409                if(this.search){ 
     410                    Element('search_for').value = this.search; 
     411                    this.search = null; 
     412                    write_msg("No user found by this search in you organization"); 
     413                } 
     414                win = new dJSWin({ 
    389415                        id: 'win_'+el.id, 
    390416                        content_id: el.id, 
     
    495521                                } 
    496522                        } 
     523                        if(preferences.cloud_ldap) 
     524                            QuickCatalogSearch.update_organizations_sub(); 
    497525                }                
    498                 cExecute ("$this.ldap_functions.get_organizations&referral=false&catalog="+Element('select_catalog').value, handler_org);                
    499         } 
     526                cExecute ("$this.ldap_functions.get_organizations&referral=false&catalog="+Element('select_catalog').value, handler_org); 
     527        } 
     528 
     529        emQuickCatalogSearch.prototype.update_organizations_sub = function(){ 
     530                while(Element('select_organization_sub').options.length > 0) { 
     531                        Element('select_organization_sub').remove(0); 
     532                } 
     533                var handler_org = function(data){ 
     534                        Element('select_organization_sub').style.display = ''; 
     535                        Element('select_organization_sub').options[0] = new Option(get_lang('all'),'all'); 
     536                        if (data != null){ 
     537                                //var user_organization = Element('user_organizations').value; 
     538                                for(x = 0; x < data.length; x++) { 
     539                                        Element('select_organization_sub').options[x+1] = new Option(data[x].toUpperCase(),data[x]); 
     540//                                      if(user_organization.toUpperCase() == data[x].toUpperCase()) 
     541                                         
     542                                } 
     543                        Element('select_organization_sub').options[0].selected = true; 
     544                        } 
     545                        
     546                } 
     547                cExecute ("$this.ldap_functions.get_organizations&referral=false&catalog="+Element('select_catalog').value+"&organization="+Element('select_organization').value, handler_org); 
     548        } 
     549 
    500550 
    501551        emQuickCatalogSearch.prototype.changeOptions = function(type){   
     
    566616                        return false; 
    567617                } 
    568                 var organization = Element('select_organization').value;                 
     618                var organization = Element('select_organization').value; 
     619                var organization_sub = Element('select_organization_sub').value; 
    569620                var search               = itemSearch ? Element('search_for').value : ''; 
    570621                var catalog              = Element('select_catalog').value; 
     
    641692 
    642693                Element('msg_search').style.visibility = 'visible'; 
    643                 cExecute ("$this.ldap_functions.catalogsearch&max_result="+max_result+"&organization="+organization+"&search_for="+search+"&catalog="+catalog, handler_searchResults); 
     694                cExecute ("$this.ldap_functions.catalogsearch&max_result="+max_result+"&organization="+organization+"&organization_sub="+organization_sub+"&search_for="+search+"&catalog="+catalog, handler_searchResults); 
    644695        } 
    645696 
  • branches/2.3/expressoMail1_2/js/common_functions.js

    r5162 r5246  
    571571                        if ((field != 'null') && (ID != 'null')) 
    572572                        { 
    573                                 QuickCatalogSearch.showList(data, quickSearchKeyBegin, quickSearchKeyEnd); 
     573                                QuickCatalogSearch.showList(data, quickSearchKeyBegin, quickSearchKeyEnd); 
    574574                        } 
    575575                        else 
     
    577577                                QuickSearchUser.showList(data); 
    578578                        } 
    579                 } 
    580                 else 
    581                         alert(get_lang('None result was found.')); 
    582                 return true; 
     579        } 
     580                else{ 
     581                        if(preferences.cloud_ldap) 
     582                            openListUsers("1",emailList); 
     583                        else 
     584                            alert(get_lang('None result was found.')); 
     585                } 
     586                return true; 
    583587        } 
    584588 
  • branches/2.3/expressoMail1_2/js/doiMenuData.js

    r3388 r5246  
    137137} 
    138138 
    139 function openListUsers(border_id) { 
     139function openListUsers(border_id,search) { 
    140140        connector.loadScript("QuickCatalogSearch"); 
    141141        if (typeof(QuickCatalogSearch) == 'undefined'){ 
    142                                         setTimeout('openListUsers('+border_id+')',500); 
     142                                        if(typeof(search) == 'undefined') 
     143                                            setTimeout('openListUsers('+border_id+')',500); 
     144                                        else 
     145                                            setTimeout('openListUsers('+border_id+',"'+search+'")',500); 
    143146                                        return false; 
    144147                                } 
     148        QuickCatalogSearch.search = search; 
    145149        QuickCatalogSearch.showCatalogList(border_id); 
    146150} 
  • branches/2.3/expressoMail1_2/setup/phpgw_pt-br.lang

    r4906 r5246  
    665665Exporting selected messages, this can take some time.   expressoMail1_2 pt-br   Exportando mensagens, isso pode levar algum tempo. 
    666666You cant manipulate messages from multiple folders on search    expressoMail1_2 pt-br   Impossível manipular mensagens de múltiplas pastas a partir de uma busca. 
     667No user found by this search in you organization        expressoMail1_2 pt-br   Nenhum resultado encontrado para essa pesquisa na sua organização. 
     668Advanced Search expressoMail1_2 pt-br   Busca detalhada 
  • branches/2.3/expressoMail1_2/templates/default/config.tpl

    r4533 r5246  
    3737     </select> 
    3838    </td> 
     39   </tr> 
     40   <tr bgcolor="{row_off}"> 
     41   <td>{lang_Do_you_want_to_use_cloud_ldap_structure?}</td> 
     42       <td> 
     43           <select name="newsettings[expressoMail_cloud_ldap]"> 
     44               <option value=""{selected_expressoMail_cloud_ldap_False}>{lang_No}</option> 
     45               <option value="True"{selected_expressoMail_cloud_ldap_True}>{lang_Yes}</option> 
     46           </select> 
     47       </td> 
    3948   </tr> 
    4049   <tr bgcolor="{row_off}"> 
Note: See TracChangeset for help on using the changeset viewer.