From 7fe3811c65a7c63154f03610e289a6d196f3ae2e Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Wed, 18 Jan 2012 06:10:46 -0500 Subject: [PATCH] Changed license to GNU GPLv3+ with exceptions for skins and plugins --- program/include/rcube_ldap.php | 25 +++++++++++++++---------- 1 files changed, 15 insertions(+), 10 deletions(-) diff --git a/program/include/rcube_ldap.php b/program/include/rcube_ldap.php index b25751c..0d7b7d5 100644 --- a/program/include/rcube_ldap.php +++ b/program/include/rcube_ldap.php @@ -6,7 +6,10 @@ | This file is part of the Roundcube Webmail client | | Copyright (C) 2006-2011, The Roundcube Dev Team | | Copyright (C) 2011, Kolab Systems AG | - | Licensed under the GNU GPL | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | | | | PURPOSE: | | Interface to an LDAP address directory | @@ -176,7 +179,7 @@ $host = idn_to_ascii(rcube_parse_host($host)); $hostname = $host.($this->prop['port'] ? ':'.$this->prop['port'] : ''); - $this->_debug("C: Connect [$hostname]"); + $this->_debug("C: Connect [$hostname] [{$this->prop['name']}]"); if ($lc = @ldap_connect($host, $this->prop['port'])) { @@ -870,10 +873,8 @@ // The filter is not set, set it. $this->filter = $this->prop['filter']; } - $this->_exec_search(true); - if ($this->ldap_result) { - $count = ldap_count_entries($this->conn, $this->ldap_result); - } + + $count = (int) $this->_exec_search(true); } return new rcube_result_set($count, ($this->list_page-1) * $this->page_size); @@ -1027,7 +1028,7 @@ $dn = self::dn_encode($dn); // add new contact to the selected group - if ($this->groups) + if ($this->group_id) $this->add_to_group($this->group_id, $dn); return $dn; @@ -1320,12 +1321,13 @@ if (!($value = $rec[$lf][$i])) continue; + list($col, $subtype) = explode(':', $rf); $out['_raw_attrib'][$lf][$i] = $value; if ($rf == 'email' && $this->mail_domain && !strpos($value, '@')) $out[$rf][] = sprintf('%s@%s', $value, $this->mail_domain); - else if (in_array($rf, array('street','zipcode','locality','country','region'))) - $out['address'][$i][$rf] = $value; + else if (in_array($col, array('street','zipcode','locality','country','region'))) + $out['address'.($subtype?':':'').$subtype][$i][$col] = $value; else if ($rec[$lf]['count'] > 1) $out[$rf][] = $value; else @@ -1722,13 +1724,16 @@ if (($group_cache = $this->cache->get('groups')) === null) $group_cache = $this->_fetch_groups(); + if (!is_array($contact_ids)) + $contact_ids = explode(',', $contact_ids); + $base_dn = $this->groups_base_dn; $group_name = $group_cache[$group_id]['name']; $member_attr = $group_cache[$group_id]['member_attr']; $group_dn = "cn=$group_name,$base_dn"; $new_attrs = array(); - foreach (explode(",", $contact_ids) as $id) + foreach ($contact_ids as $id) $new_attrs[$member_attr][] = self::dn_decode($id); $this->_debug("C: Add [dn: $group_dn]: ".print_r($new_attrs, true)); -- Gitblit v1.9.1