- Timestamp:
- 09/17/12 14:30:47 (12 years ago)
- Location:
- branches/2.4
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.4
- Property svn:mergeinfo changed
-
branches/2.4/expressoMail1_2/inc/class.ldap_functions.inc.php
r7083 r7228 88 88 $this->ldap_context = $_SESSION['phpgw_info']['expressomail']['server']['ldap_context']; 89 89 90 if( isset($_SESSION['phpgw_info']['expressomail']['server']['ldap_master_host']) && 91 isset($_SESSION['phpgw_info']['expressomail']['server']['ldap_master_root_dn']) && 92 isset($_SESSION['phpgw_info']['expressomail']['server']['ldap_master_root_pw']) && 93 90 if( isset($_SESSION['phpgw_info']['expressomail']['server']['ldap_master_host']) && 91 isset($_SESSION['phpgw_info']['expressomail']['server']['ldap_master_root_dn']) && 92 isset($_SESSION['phpgw_info']['expressomail']['server']['ldap_master_root_pw']) && 93 $_SESSION['phpgw_info']['expressomail']['server']['ldap_master_host'] && 94 94 $_SESSION['phpgw_info']['expressomail']['server']['ldap_master_root_dn'] && 95 95 $_SESSION['phpgw_info']['expressomail']['server']['ldap_master_root_pw']) { … … 114 114 $ID = $params['ID']; 115 115 116 117 116 $ldapService = ServiceLocator::getService('ldap'); 117 $filter = $ldapService->getSearchFilter($params['search_for']); 118 118 119 119 $contacts_result = array(); … … 132 132 if ($this->ds) 133 133 { 134 135 136 137 138 139 140 141 134 $ldapService->connection = $this->ds; 135 if($extendedinfo) 136 $justthese = array("cn", "mail", "telephonenumber", "uid","uidNumber", "mobile", "phpgwaccountvisible", "employeenumber", "ou"); 137 else 138 $justthese = array("cn", "mail", "telephoneNumber", "phpgwAccountVisible", "uidNumber","uid"); 139 $types = false; 140 141 if( $field == 'null' || $ID == 'null' ) 142 142 { 143 144 145 143 $justthese[] = "jpegphoto"; 144 $types = 'u'; 145 } 146 146 147 147 $filter = $ldapService->getSearchFilter( $params['search_for'], $types ); 148 148 149 149 $sr=@ldap_search($this->ds, $this->ldap_context, $filter, $justthese, 0, $this->max_result); 150 151 152 153 154 155 156 150 151 if(!$sr) 152 return null; 153 154 $count_entries = ldap_count_entries($this->ds,$sr); 155 156 $info = ldap_get_entries($this->ds, $sr); 157 157 158 158 // New search only on user sector 159 159 if ($count_entries == $this->max_result) 160 160 { 161 162 163 164 165 166 for ($i=0; $i<=$catalogsNum; $i++) {161 $overload = $count_entries; 162 } 163 else 164 { 165 $catalogsNum=count($this->external_srcs); 166 for ($i=0; $i<=$catalogsNum; $i++) { 167 167 if ($this->external_srcs[$i]["quicksearch"]) { 168 168 $this->ldapConnect(true,$i); 169 169 $filter="(|(cn=*$search_for*)(mail=*$search_for*))"; 170 170 if($extendedinfo) 171 171 $justthese = array("cn", "mail", "telephonenumber", "uid","uidNumber", "mobile", "phpgwaccountvisible", "employeenumber", "ou"); 172 172 else 173 173 $justthese = array("cn", "mail", "telephoneNumber", "phpgwAccountVisible","uidNumber", "uid"); … … 185 185 } 186 186 187 $tmp = array();188 $tmp_users_from_user_org = array(); 189 190 for ($i=0; $i<$info["count"]; $i++) 191 { 192 $key = $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]; 193 194 if (/*(!$quickSearch_only_in_userSector) &&*/ preg_match("/$user_sector_dn/i", $info[$i]['dn'])) 187 $tmp = array(); 188 $tmp_users_from_user_org = array(); 189 190 for ($i=0; $i<$info["count"]; $i++) 191 { 192 $key = $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]; 193 194 if (/*(!$quickSearch_only_in_userSector) &&*/ preg_match("/$user_sector_dn/i", $info[$i]['dn'])) 195 195 { 196 $tmp_users_from_user_org[$key] = utf8_decode($info[$i]["cn"][0]);197 continue;198 }199 200 $tmp[$key] = utf8_decode($info[$i]["cn"][0]);201 }196 $tmp_users_from_user_org[$key] = utf8_decode($info[$i]["cn"][0]); 197 continue; 198 } 199 200 $tmp[$key] = utf8_decode($info[$i]["cn"][0]); 201 } 202 202 203 203 natcasesort($tmp_users_from_user_org); … … 219 219 } 220 220 $contacts_result['quickSearch_only_in_userSector'] = $quickSearch_only_in_userSector; 221 $contacts_result['maxResult'] = $ldapService->limit;221 $contacts_result['maxResult'] = $ldapService->limit; 222 222 } 223 223 else … … 328 328 return $this->quickSearch($params); 329 329 else 330 return $this->quickSearchAll($params); 330 return $this->quickSearchAll($params); 331 331 } 332 332 } … … 340 340 * @author Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 341 341 * @sponsor Caixa Econômica Federal 342 * @author Prog nus Software Livre <airton@prognus.com.br | prognus@prognus.com.br>342 * @author ProgquickSearchAllnus Software Livre <airton@prognus.com.br | prognus@prognus.com.br> 343 343 * @param <array> <$param> <parametros vindos do cliente> 344 344 * @return <array> <$retorno> <Array com os usuários de todos os catálogos, de acordo com o parâmetro> … … 405 405 * @return <array> <$retorno> <Array com os usuários do Catálogo Global, de acordo com o parâmetro> 406 406 */ 407 function quickSearchGlobal($params, $all=false) 407 function quickSearchGlobal($params, $all=false) 408 408 { 409 409 include_once dirname(__FILE__). '/../../header.inc.php'; … … 482 482 $search = ldap_get_entries($this->ds, $sr); 483 483 for ($j=0; $j<$search["count"]; $j++) { 484 $info_return[] = $search[$j]; 484 $search[$j]['isExternal'] = true; 485 $info_return[] = $search[$j]; 485 486 } 486 487 $info_return["count"] = count($info_return)-1; … … 488 489 } 489 490 //---------------------------------------------------------------// 490 491 491 492 if($all == false) 492 493 $info_return['type_catalog'] = "G"; … … 494 495 $info_return['extra_ldap_fields'] = $campos_extras; 495 496 496 foreach($info_return as &$value){ 497 $value['type_contact'] = "G"; 498 499 //Converte a descrição dos filtros para ISO8859 corrigindo inconsitências com caractéres especiais 500 if(isset($value['vacationinfo']) && isset($value['vacationinfo'][0]) && $value['vacationinfo'][0] != '') 501 $value['vacationinfo'][0] = $this->toISO8859($value['vacationinfo'][0]); 502 } 497 foreach($info_return as &$value){ 498 $value['type_contact'] = "G"; 499 500 //Converte a descrição dos filtros para ISO8859 corrigindo inconsitências com caractéres especiais 501 if(isset($value['vacationinfo']) && isset($value['vacationinfo'][0]) && $value['vacationinfo'][0] != '') 502 $value['vacationinfo'][0] = $this->toISO8859($value['vacationinfo'][0]); 503 } 503 504 504 505 $info_return['search_for'] = $params['search_for']; 505 506 return $info_return; 506 return $info_return; 507 507 } 508 508 … … 898 898 function getSharedUsersFrom($params){ 899 899 $filter = ''; 900 $i = 0;901 //Added to save if must save sent messages in shared folder 902 $acl_save_sent_in_shared = array(); 903 904 if($params['uids']) { 905 $uids = explode(";",$params['uids']); 906 $this->imap = new imap_functions(); 907 foreach($uids as $index => $uid){ 908 $params = array(); 909 //Added to save if user has create permission 910 $acl_create_message = array(); 911 $acl = $this->imap->getacltouser($uid ,true); 912 913 if ( preg_match("/p/",$acl )){ 914 $filter .= "(uid=$uid)"; 915 $acl_save_sent_in_shared[ $i ] =$uid; 916 $i++; 917 918 } 919 } 900 $i = 0; 901 //Added to save if must save sent messages in shared folder 902 $acl_save_sent_in_shared = array(); 903 904 if($params['uids']) { 905 $uids = explode(";",$params['uids']); 906 $this->imap = new imap_functions(); 907 foreach($uids as $index => $uid){ 908 $params = array(); 909 //Added to save if user has create permission 910 $acl_create_message = array(); 911 $acl = $this->imap->getacltouser($uid ,true); 912 913 if ( preg_match("/p/",$acl )){ 914 $filter .= "(uid=$uid)"; 915 $acl_save_sent_in_shared[ $i ] =$uid; 916 $i++; 917 918 } 919 } 920 920 } 921 921 … … 937 937 } 938 938 } 939 939 940 940 $info['myname'] = $_SESSION['phpgw_info']['expressomail']['user']['fullname']; 941 941 … … 953 953 $result = ldap_get_entries($this->ds, $sr); 954 954 for ($j = 0;$j < $result["count"]; $j++){ 955 $result[$j]['cn'][0] = utf8_decode($result[$j]['cn'][0]); 956 $result[$j]['mail'][0] = $result[$j]['mail'][0]; 957 $result[$j]['save_shared'][0] = 'n'; 958 $info[$info['count']] = $result[$j]; 959 $info['count'] = (int)$info['count'] + 1;955 $result[$j]['cn'][0] = utf8_decode($result[$j]['cn'][0]); 956 $result[$j]['mail'][0] = $result[$j]['mail'][0]; 957 $result[$j]['save_shared'][0] = 'n'; 958 $info[$info['count']] = $result[$j]; 959 $info['count'] = (int)$info['count'] + 1; 960 960 } 961 961 } 962 962 963 963 $_SESSION['phpgw_info']['expressomail']['user']['shared_mailboxes'] = $info; 964 964 965 965 return $info; 966 966 }
Note: See TracChangeset
for help on using the changeset viewer.