From fbe54043cf598b19a753dc2b21a7ed558d23fd15 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Thu, 18 Aug 2011 13:40:07 -0400
Subject: [PATCH] Fix folders drop-down list: descend into root folder (e.g. INBOX) even if part of the exception list

---
 program/include/rcmail.php |   24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index d38f771..e013c75 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -421,7 +421,7 @@
 
     if (!$contacts) {
       raise_error(array(
-        'code' => 600, 'type' => 'php',
+        'code' => 700, 'type' => 'php',
         'file' => __FILE__, 'line' => __LINE__,
         'message' => "Addressbook source ($id) not found!"),
         true, true);
@@ -439,6 +439,7 @@
    * 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 @@
       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 @@
       $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)
         );
     }
 
@@ -835,7 +837,7 @@
       }
       else {
         raise_error(array(
-          'code' => 600, 'type' => 'php',
+          'code' => 620, 'type' => 'php',
           'file' => __FILE__, 'line' => __LINE__,
           'message' => "Failed to create a user record. Maybe aborted by a plugin?"
           ), true, false);
@@ -843,9 +845,9 @@
     }
     else {
       raise_error(array(
-        'code' => 600, 'type' => 'php',
+        'code' => 621, 'type' => 'php',
         'file' => __FILE__, 'line' => __LINE__,
-        'message' => "Acces denied for new user $username. 'auto_create_user' is disabled"
+        'message' => "Access denied for new user $username. 'auto_create_user' is disabled"
         ), true, false);
     }
 

--
Gitblit v1.9.1