summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-08-16 13:41:52 +0000
committeralecpl <alec@alec.pl>2011-08-16 13:41:52 +0000
commit5c9d1ffe8eb4d53c378720e745e54f2a4bdecb28 (patch)
treefde47cd219ad5679d86a54c6fd098da78bf80f28
parentfe0cb657f1b3c0a5b097a4f7a2b670ea8c52997b (diff)
- Add option to hide selected LDAP addressbook on the list
-rw-r--r--CHANGELOG1
-rw-r--r--config/main.inc.php.dist3
-rw-r--r--program/include/rcmail.php16
-rw-r--r--program/steps/addressbook/func.inc14
4 files changed, 23 insertions, 11 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 1164bad48..3f7535382 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Add option to hide selected LDAP addressbook on the list
- Add client-side checking of uploaded files size
- Add newlines between organization, department, jobtitle (#1488028)
- Recalculate date when replying to a message and localize the cite header (#1487675)
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 750fa2576..85afa8c7f 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -513,6 +513,9 @@ $rcmail_config['ldap_public']['Verisign'] = array(
'auth_cid' => '',
// SASL authentication method (for proxy auth), e.g. DIGEST-MD5
'auth_method' => '',
+ // Indicates if the addressbook shall be displayed on the list.
+ // With this option enabled you can still search/view contacts.
+ 'hidden' => false,
// Indicates if we can write to the LDAP directory or not.
// If writable is true then these fields need to be populated:
// LDAP_Object_Classes, required_fields, LDAP_rdn
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index ced5934a6..e013c759c 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -439,6 +439,7 @@ class rcmail
* Return address books list
*
* @param boolean True if the address book needs to be writeable
+ *
* @return array Address books array
*/
public function get_address_sources($writeable = false)
@@ -453,9 +454,9 @@ class rcmail
if (!isset($this->address_books['0']))
$this->address_books['0'] = new rcube_contacts($this->db, $this->user->ID);
$list['0'] = array(
- 'id' => '0',
- 'name' => rcube_label('personaladrbook'),
- 'groups' => $this->address_books['0']->groups,
+ 'id' => '0',
+ 'name' => rcube_label('personaladrbook'),
+ 'groups' => $this->address_books['0']->groups,
'readonly' => $this->address_books['0']->readonly,
'autocomplete' => in_array('sql', $autocomplete)
);
@@ -465,11 +466,12 @@ class rcmail
$ldap_config = (array) $ldap_config;
foreach ($ldap_config as $id => $prop)
$list[$id] = array(
- 'id' => $id,
- 'name' => $prop['name'],
- 'groups' => is_array($prop['groups']),
+ 'id' => $id,
+ 'name' => $prop['name'],
+ 'groups' => is_array($prop['groups']),
'readonly' => !$prop['writable'],
- 'autocomplete' => in_array('sql', $autocomplete)
+ 'hidden' => $prop['hidden'],
+ 'autocomplete' => in_array($id, $autocomplete)
);
}
diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index d210a3d36..1ef55fd78 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -68,12 +68,18 @@ if (!$RCMAIL->action && !$OUTPUT->ajax_call) {
if (!strlen($source) || !isset($js_list[$source]))
$source = $js_list[key($js_list)]['id'];
- // count writeable sources
+ // count all/writeable sources
$writeable = 0;
- foreach ($js_list as $s) {
+ $count = 0;
+ foreach ($js_list as $sid => $s) {
+ $count++;
if (!$s['readonly']) {
$writeable++;
}
+ // unset hidden sources
+ if ($s['hidden']) {
+ unset($js_list[$sid]);
+ }
}
$search_mods = $RCMAIL->config->get('addressbook_search_mods', $SEARCH_MODS_DEFAULT);
@@ -82,9 +88,9 @@ if (!$RCMAIL->action && !$OUTPUT->ajax_call) {
$OUTPUT->set_env('writable_source', $writeable);
$OUTPUT->set_pagetitle(rcube_label('addressbook'));
- $_SESSION['addressbooks_count'] = count($js_list);
+ $_SESSION['addressbooks_count'] = $count;
$_SESSION['addressbooks_count_writeable'] = $writeable;
-
+
if (!strlen($source))
$source = strval(key($js_list));