Ticket #1483899: compose_391.inc.diff

File compose_391.inc.diff, 2.0 kB (added by entropy, 2 years ago)

Pierre Mauduit's ldap auto completion patch

  • compose.inc

     
    2020*/ 
    2121 
    2222require_once('Mail/mimeDecode.php'); 
     23require_once('include/rcube_ldap.inc'); 
    2324 
    2425// define constants for message compose mode 
    2526define('RCUBE_COMPOSE_REPLY', 0x0106); 
     
    886887  while ($sql_arr = $DB->fetch_assoc($sql_result)) 
    887888    if ($sql_arr['email']) 
    888889      $a_contacts[] = format_email_recipient($sql_arr['email'], rep_specialchars_output($sql_arr['name'], 'js')); 
    889    
    890   $OUTPUT->add_script(sprintf("$JS_OBJECT_NAME.set_env('contacts', %s);", array2js($a_contacts))); 
     890 
     891  /* LDAP autocompletion */ 
     892  foreach ($CONFIG['ldap_public'] as $ldapserv_config) 
     893  { 
     894  /* we need fuzzy search enabled */ 
     895     if ($ldapserv_config['fuzzy_search'] != 1) 
     896        continue; 
     897 
     898     $mail_field = $ldapserv_config['mail_field']; 
     899     $name_field = $ldapserv_config['name_field']; 
     900 
     901     $cLdap = new rcube_ldap(); 
     902 
     903     $cLdap->connect ($ldapserv_config['hosts'], 
     904                      $ldapserv_config['port'], 
     905                      3, 
     906                      $ldapserv_config['dn'], 
     907                      $ldapserv_config['password']); 
     908 
     909 
     910 
     911     $results = $cLdap->search ($ldapserv_config['base_dn'], 
     912                                $name_field."=*", 
     913                                array($mail_field, $name_field), 
     914                                $ldapserv_config['scope']); 
     915 
     916     for ($i = 0 ; $i < $results['count'] ; $i++) 
     917        { 
     918           $mail = $results[$i][$mail_field]; 
     919           $name = $results[$i][$name_field][0]; 
     920 
     921           for ($j = 0 ; $j < $mail['count'] ; $j++) 
     922             $a_contacts[] = format_email_recipient($mail[$j], 
     923                                                    $name); 
     924        } 
     925      $cLdap->close (); 
    891926  } 
    892927 
     928  $OUTPUT->add_script(sprintf("$JS_OBJECT_NAME.set_env('contacts', %s);", array2js($a_contacts))); 
     929} 
    893930 
     931 
    894932parse_template('compose'); 
    895933?>