From 93a88c95b7415206b0c8d742f8914c7ecc193e11 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 23 Sep 2009 15:01:53 -0400
Subject: [PATCH] - Prevent from setting INBOX as any of special folders (#1486114)

---
 CHANGELOG                             |    1 +
 plugins/archive/archive.php           |    3 ++-
 program/include/main.inc              |    5 +++--
 program/steps/settings/edit_prefs.inc |    3 ++-
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 1eb7c8c..65aa16b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG RoundCube Webmail
 ===========================
 
+- Prevent from setting INBOX as any of special folders (#1486114)
 - Fix regular expression for e-mail address (#1486152)
 - Fix Received header format
 - Implemented sorting by message index - added 'index_sort' option (#1485936)
diff --git a/plugins/archive/archive.php b/plugins/archive/archive.php
index 7750160..8c855fe 100644
--- a/plugins/archive/archive.php
+++ b/plugins/archive/archive.php
@@ -115,7 +115,8 @@
       $this->add_texts('localization');
       
       $rcmail = rcmail::get_instance();
-      $select = rcmail_mailbox_select(array('noselection' => '---', 'realnames' => true, 'maxlength' => 30));
+      $select = rcmail_mailbox_select(array('noselection' => '---', 'realnames' => true,
+        'maxlength' => 30, 'exceptions' => array('INBOX')));
 
       $args['blocks']['main']['options']['archive_mbox'] = array(
           'title' => $this->gettext('archivefolder'),
diff --git a/program/include/main.inc b/program/include/main.inc
index a99504c..97a3db1 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -1152,11 +1152,12 @@
 {
   global $RCMAIL;
   
-  $p += array('maxlength' => 100, 'relanames' => false);
+  $p += array('maxlength' => 100, 'realnames' => false);
   $a_mailboxes = array();
   
   foreach ($RCMAIL->imap->list_mailboxes() as $folder)
-    rcmail_build_folder_tree($a_mailboxes, $folder, $RCMAIL->imap->get_hierarchy_delimiter());
+    if (empty($p['exceptions']) || !in_array($folder, $p['exceptions']))
+      rcmail_build_folder_tree($a_mailboxes, $folder, $RCMAIL->imap->get_hierarchy_delimiter());
 
   $select = new html_select($p);
   
diff --git a/program/steps/settings/edit_prefs.inc b/program/steps/settings/edit_prefs.inc
index 38343b5..6abfb00 100644
--- a/program/steps/settings/edit_prefs.inc
+++ b/program/steps/settings/edit_prefs.inc
@@ -375,7 +375,8 @@
     // Configure special folders
     if (!isset($no_override['default_imap_folders'])) {
       $RCMAIL->imap_init(true);
-      $select = rcmail_mailbox_select(array('noselection' => '---', 'realnames' => true, 'maxlength' => 30));
+      $select = rcmail_mailbox_select(array('noselection' => '---', 'realnames' => true,
+        'maxlength' => 30, 'exceptions' => array('INBOX')));
 
       if (!isset($no_override['drafts_mbox']))
         $blocks['main']['options']['drafts_mbox'] = array(

--
Gitblit v1.9.1