From f105dbb7691dd2ae919486a3b82b98be494e94be Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 11 Jun 2014 13:16:57 -0400
Subject: [PATCH] Fix PHP error in Preferences when default_folders was in dont_override (#1489940)

---
 CHANGELOG                             |    1 +
 program/steps/settings/func.inc       |    3 ++-
 program/steps/settings/save_prefs.inc |   15 ++++-----------
 3 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 297972e..9562e9b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix PHP error in Preferences when default_folders was in dont_override (#1489940)
 - Add configurable LDAP_OPT_DEREF option (#1489864)
 - Fix unintentional draft autosave request if autosave is disabled (#1489882)
 - Fix malformed References: header in send/saved mail (#1489891)
diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc
index c5f5ba7..0aae197 100644
--- a/program/steps/settings/func.inc
+++ b/program/steps/settings/func.inc
@@ -1035,7 +1035,8 @@
             }
 
             // Configure special folders
-            if (!isset($no_override['default_folders']) && $current) {
+            $set = array('drafts_mbox', 'sent_mbox', 'junk_mbox', 'trash_mbox');
+            if ($current && count(array_intersect($no_override, $set)) < 4) {
                 $select = $RCMAIL->folder_selector(array(
                     'noselection'   => '---',
                     'realnames'     => true,
diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc
index f71eee3..fba2b35 100644
--- a/program/steps/settings/save_prefs.inc
+++ b/program/steps/settings/save_prefs.inc
@@ -192,17 +192,10 @@
 
 case 'folders':
     // special handling for 'default_folders'
-    if (in_array('default_folders', (array)$CONFIG['dont_override'])) {
-        foreach (array('drafts_mbox','sent_mbox','junk_mbox','trash_mbox') as $p) {
-            $a_user_prefs[$p] = $CONFIG[$p];
-        }
-    }
-    else {
-        $a_user_prefs['default_folders'] = array('INBOX');
-        foreach (array('drafts_mbox','sent_mbox','junk_mbox','trash_mbox') as $p) {
-            if ($a_user_prefs[$p]) {
-                $a_user_prefs['default_folders'][] = $a_user_prefs[$p];
-            }
+    $a_user_prefs['default_folders'] = array('INBOX');
+    foreach (array('drafts_mbox', 'sent_mbox', 'junk_mbox', 'trash_mbox') as $p) {
+        if ($a_user_prefs[$p]) {
+            $a_user_prefs['default_folders'][] = $a_user_prefs[$p];
         }
     }
 

--
Gitblit v1.9.1