alecpl
2009-08-29 4368a079f5f88e92e18c5366e80126fe35dc8608
- Fix gn and givenName should be synonymous in LDAP addressbook (#1485892)


4 files modified
32 ■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/include/rcube_ldap.php 28 ●●●● patch | view | raw | blame | history
program/steps/addressbook/func.inc 1 ●●●● patch | view | raw | blame | history
program/steps/addressbook/search.inc 2 ●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG RoundCube Webmail
===========================
- Fix gn and givenName should be synonymous in LDAP addressbook (#1485892)
- Add mail_domain to LDAP email entries without @ sign (#1485201)
- Fix saving empty values in LDAP contact data (#1485781)
- Fix LDAP contact update when RDN field is changed (#1485788)
program/include/rcube_ldap.php
@@ -55,7 +55,10 @@
    foreach ($p as $prop => $value)
      if (preg_match('/^(.+)_field$/', $prop, $matches))
        $this->fieldmap[$matches[1]] = strtolower($value);
        $this->fieldmap[$matches[1]] = $this->_attr_name(strtolower($value));
    foreach ($this->prop['required_fields'] as $key => $val)
      $this->prop['required_fields'][$key] = $this->_attr_name(strtolower($val));
    $this->sort_col = $p['sort'];
@@ -552,7 +555,7 @@
   *
   * @access private
   */
  function _exec_search()
  private function _exec_search()
  {
    if ($this->ready)
    {
@@ -569,7 +572,7 @@
  /**
   * @access private
   */
  function _ldap2result($rec)
  private function _ldap2result($rec)
  {
    global $RCMAIL;
@@ -595,13 +598,30 @@
  /**
   * @access private
   */
  function _map_field($field)
  private function _map_field($field)
  {
    return $this->fieldmap[$field];
  }
  
  
  /**
   * @access private
   */
  private function _attr_name($name)
  {
    // list of known attribute aliases
    $aliases = array(
      'gn' => 'givenname',
      'rfc822mailbox' => 'mail',
      'userid' => 'uid',
      'emailaddress' => 'email',
      'pkcs9email' => 'email',
    );
    return isset($aliases[$name]) ? $aliases[$name] : $name;
  }
  /**
   * @static
   */
  function quote_string($str)
program/steps/addressbook/func.inc
@@ -56,7 +56,6 @@
if (!empty($_REQUEST['_search']) && isset($_SESSION['search'][$_REQUEST['_search']]))
  $CONTACTS->set_search_set($_SESSION['search'][$_REQUEST['_search']]);
// set data source env
$OUTPUT->set_env('source', $source ? $source : '0');
$OUTPUT->set_env('readonly', $CONTACTS->readonly, false);
program/steps/addressbook/search.inc
@@ -32,7 +32,7 @@
{
  // save search settings in session
  $_SESSION['search'][$search_request] = $CONTACTS->get_search_set();
  // create javascript list
  rcmail_js_contacts_list($result);
}