summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--program/lib/Roundcube/rcube_ldap.php11
1 files changed, 8 insertions, 3 deletions
diff --git a/program/lib/Roundcube/rcube_ldap.php b/program/lib/Roundcube/rcube_ldap.php
index 334cb2465..d286c2da3 100644
--- a/program/lib/Roundcube/rcube_ldap.php
+++ b/program/lib/Roundcube/rcube_ldap.php
@@ -85,8 +85,13 @@ class rcube_ldap extends rcube_addressbook
// add group name attrib to the list of attributes to be fetched
$fetch_attributes[] = $this->prop['groups']['name_attr'];
}
- else if (is_array($p['group_filters']) && count($p['group_filters'])) {
+ if (is_array($p['group_filters']) && count($p['group_filters'])) {
$this->groups = true;
+
+ foreach ($p['group_filters'] as $group_filter) {
+ if ($group_filter['name_attr'])
+ $fetch_attributes[] = $group_filter['name_attr'];
+ }
}
// fieldmap property is given
@@ -198,8 +203,8 @@ class rcube_ldap extends rcube_addressbook
$this->cache = $rcube->get_cache($cache_name, $cache_type, $cache_ttl);
// determine which attributes to fetch
+ $this->prop['list_attributes'] = array_unique($fetch_attributes);
$this->prop['attributes'] = array_merge(array_values($this->fieldmap), $fetch_attributes);
- $this->prop['list_attributes'] = $fetch_attributes;
foreach ($rcube->config->get('contactlist_fields') as $col) {
$this->prop['list_attributes'] = array_merge($this->prop['list_attributes'], $this->_map_field($col));
}
@@ -1334,7 +1339,7 @@ class rcube_ldap extends rcube_addressbook
if (self::is_group_entry($rec)) {
$out['_type'] = 'group';
$out['readonly'] = true;
- $fieldmap['name'] = $this->prop['groups']['name_attr'];
+ $fieldmap['name'] = $this->group_data['name_attr'] ? $this->group_data['name_attr'] : $this->prop['groups']['name_attr'];
}
foreach ($fieldmap as $rf => $lf)