From 5c253dd59e536b53fc3dfd660c78eb0d7842527c Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Sat, 02 Apr 2016 03:09:43 -0400 Subject: [PATCH] Fix so SPECIAL-USE assignments are forced only until user sets special folders (#4782) --- program/lib/Roundcube/rcube_imap.php | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/program/lib/Roundcube/rcube_imap.php b/program/lib/Roundcube/rcube_imap.php index 575d13c..80acdf2 100644 --- a/program/lib/Roundcube/rcube_imap.php +++ b/program/lib/Roundcube/rcube_imap.php @@ -2811,7 +2811,7 @@ } // INBOX should always be available - if ((!$filter || $filter == 'mail') && !in_array('INBOX', $a_mboxes)) { + if (!strlen($root) && (!$filter || $filter == 'mail') && !in_array('INBOX', $a_mboxes)) { array_unshift($a_mboxes, 'INBOX'); } @@ -2942,7 +2942,7 @@ } // INBOX should always be available - if ((!$filter || $filter == 'mail') && !in_array('INBOX', $a_mboxes)) { + if (!strlen($root) && (!$filter || $filter == 'mail') && !in_array('INBOX', $a_mboxes)) { array_unshift($a_mboxes, 'INBOX'); } @@ -3304,6 +3304,12 @@ public function get_special_folders($forced = false) { $result = parent::get_special_folders(); + $rcube = rcube::get_instance(); + + // Lock SPECIAL-USE after user preferences change (#4782) + if ($rcube->config->get('lock_special_folders')) { + return $result; + } if (isset($this->icache['special-use'])) { return array_merge($result, $this->icache['special-use']); -- Gitblit v1.9.1