LDAP improvements

release-0.6
thomascube 18 years ago
parent 88f66ec89c
commit 6b603da6f1

@ -1,6 +1,13 @@
CHANGELOG RoundCube Webmail
---------------------------
2007/08/15 (thomasb)
----------
- Applied patch for LDAP contacts listing by Glen Ogilvie
- Applied patch for more address fields in LDAP contacts (#1484402)
- Close LDAP connections on script shutdown
2007/08/13 (thomasb)
----------
- Add alternative for getallheaders() (fix #1484508)

@ -202,8 +202,10 @@ $rcmail_config['mail_header_delimiter'] = NULL;
* 'search_fields' => array('mail', 'cn'), // fields to search in
* 'name_field' => 'cn', // this field represents the contact's name
* 'email_field' => 'mail', // this field represents the contact's e-mail
* 'surname_field' => 'sn', // this field represents the contact's last name
* 'firstname_field' => 'gn', // this field represents the contact's first name
* 'scope' => 'sub', // search mode: sub|base|list
* 'filter' => '', // will be &'d with search field ex: (status=act)
* 'filter' => '', // used for basic listing (if not empty) and will be &'d with search queries. ex: (status=act)
* 'fuzzy_search' => true); // server allows wildcard search
*/

@ -299,7 +299,7 @@ function rcmail_set_imap_prop()
*/
function rcmail_shutdown()
{
global $IMAP;
global $IMAP, $CONTACTS;
if (is_object($IMAP))
{
@ -307,6 +307,9 @@ function rcmail_shutdown()
$IMAP->write_cache();
}
if (is_object($CONTACTS))
$CONTACTS->close();
// before closing the database connection, write session data
session_write_close();
}

@ -127,6 +127,13 @@ class rcube_contacts
}
/**
* Close connection to source
* Called on script shutdown
*/
function close(){}
/**
* List the current set of contact records
*

@ -58,7 +58,6 @@ class rcube_ldap
if (preg_match('/^(.+)_field$/', $prop, $matches))
$this->fieldmap[$matches[1]] = $value;
// $this->filter = "(dn=*)";
$this->connect();
}
@ -142,7 +141,10 @@ class rcube_ldap
function close()
{
if ($this->conn)
{
@ldap_unbind($this->conn);
$this->conn = null;
}
}
@ -212,6 +214,13 @@ class rcube_ldap
*/
function list_records($cols=null, $subset=0)
{
// add general filter to query
if (!empty($this->prop['filter']))
{
$filter = $this->prop['filter'];
$this->set_search_set($filter);
}
// exec LDAP search if no result resource is stored
if ($this->conn && !$this->ldap_result)
$this->_exec_search();
@ -442,4 +451,4 @@ class rcube_ldap
}
?>
?>

@ -2253,6 +2253,7 @@ function rcube_webmail()
{
page = 1;
this.env.current_page = page;
this.reset_qsearch();
}
this.select_folder(src, this.env.source);

@ -36,8 +36,11 @@ if ($cid && preg_match('/^[a-z0-9\-_=]+(,[a-z0-9\-_=]+)*$/i', $cid) && strlen($t
$OUTPUT->show_message('copyerror', 'error');
else
$OUTPUT->show_message('copysuccess', 'notice', array('nr' => count($success)));
// close connection to second address directory
$TARGET->close();
}
// send response
$OUTPUT->send();

Loading…
Cancel
Save