Check if folder prefs are empty *before* prefixing with personal namespace.
authorJan Schneider <jan@horde.org>
Thu, 23 Sep 2010 10:54:49 +0000 (12:54 +0200)
committerJan Schneider <jan@horde.org>
Thu, 23 Sep 2010 10:57:25 +0000 (12:57 +0200)
imp/compose-mimp.php
imp/compose.php
imp/lib/Application.php
imp/lib/Compose.php
imp/lib/LoginTasks/Task/PurgeSpam.php
imp/lib/Spam.php

index dafabec..432452c 100644 (file)
@@ -59,14 +59,15 @@ if (!$prefs->isLocked('default_identity') && isset($vars->identity)) {
     $identity->setDefault($vars->identity);
 }
 
-$draft = IMP::folderPref($prefs->getValue('drafts_folder'), true);
+$draft = $prefs->getValue('drafts_folder');
 $sent_mail_folder = $identity->getValue('sent_mail_folder');
 
 /* Determine if mailboxes are readonly. */
+$readonly_drafts = false;
 $imp_imap = $injector->getInstance('IMP_Imap')->getOb();
-$readonly_drafts = empty($draft)
-    ? false
-    : $imp_imap->isReadOnly($draft);
+if (!empty($draft)) {
+    $readonly_drafts = $imp_imap->isReadOnly(IMP::folderPref($draft, true));
+}
 $save_sent_mail = $imp_imap->isReadOnly($sent_mail_folder)
     ? false
     : $prefs->getValue('save_sent_mail');
index 11c3ab2..bb948a7 100644 (file)
@@ -98,10 +98,10 @@ $compose_disable = !IMP::canCompose();
 
 /* Determine if mailboxes are readonly. */
 $readonly_drafts = $readonly_sentmail = false;
-$draft = IMP::folderPref($prefs->getValue('drafts_folder'), true);
+$draft = $prefs->getValue('drafts_folder');
 $imp_imap = $injector->getInstance('IMP_Imap')->getOb();
 if (!empty($draft)) {
-    $readonly_drafts = $imp_imap->isReadOnly($draft);
+    $readonly_drafts = $imp_imap->isReadOnly(IMP::folderPref($draft, true));
 }
 $readonly_sentmail = $imp_imap->isReadOnly($sent_mail_folder);
 if ($readonly_sentmail) {
index 9dad2a7..2708888 100644 (file)
@@ -244,7 +244,7 @@ class IMP_Application extends Horde_Registry_Application
                 }
             }
 
-            $spam_folder = IMP::folderPref($prefs->getValue('spam_folder'), true);
+            $spam_folder = $prefs->getValue('spam_folder');
             if (!empty($spam_folder) &&
                 $prefs->getValue('empty_spam_menu')) {
                 $menu->addArray(array(
@@ -252,7 +252,7 @@ class IMP_Application extends Horde_Registry_Application
                     'icon' =>  'empty_spam.png',
                     'onclick' => 'return window.confirm(' . Horde_Serialize::serialize(_("Are you sure you wish to empty your trash folder?"), Horde_Serialize::JSON, $registry->getCharset()) . ')',
                     'text' => _("Empty _Spam"),
-                    'url' => IMP::generateIMPUrl($menu_mailbox_url, $spam_folder)->add(array('actionID' => 'empty_mailbox', 'mailbox_token' => Horde::getRequestToken('imp.mailbox')))
+                    'url' => IMP::generateIMPUrl($menu_mailbox_url, IMP::folderPref($spam_folder, true))->add(array('actionID' => 'empty_mailbox', 'mailbox_token' => Horde::getRequestToken('imp.mailbox')))
                 ));
             }
         }
index a9ed9b3..5be3b61 100644 (file)
@@ -277,10 +277,11 @@ class IMP_Compose
      */
     protected function _saveDraftServer($data)
     {
-        $drafts_mbox = IMP::folderPref($GLOBALS['prefs']->getValue('drafts_folder'), true);
+        $drafts_mbox = $GLOBALS['prefs']->getValue('drafts_folder');
         if (empty($drafts_mbox)) {
             throw new IMP_Compose_Exception(_("Saving the draft failed. No draft folder specified."));
         }
+        $drafts_mbox = IMP::folderPref($drafts_mbox, true);
 
         $imp_folder = $GLOBALS['injector']->getInstance('IMP_Folder');
 
@@ -299,7 +300,6 @@ class IMP_Compose
          * set the $MDNSent keyword. However, IMP doesn't write MDN headers
          * until send time so no need to set the flag here. */
 
-        $drafts_mbox = IMP::folderPref($GLOBALS['prefs']->getValue('drafts_folder'), true);
         $old_uid = $this->getMetadata('draft_uid');
 
         /* Add the message to the mailbox. */
index dbb3713..d7e8808 100644 (file)
@@ -37,10 +37,11 @@ class IMP_LoginTasks_Task_PurgeSpam extends Horde_LoginTasks_Task
     public function execute()
     {
         /* If there is no Spam folder set, just return. */
-        $spam_folder = IMP::folderPref($GLOBALS['prefs']->getValue('spam_folder'), true);
+        $spam_folder = $GLOBALS['prefs']->getValue('spam_folder');
         if (!$spam_folder) {
             return false;
         }
+        $spam_folder = IMP::folderPref($spam_folder, true);
 
         /* Make sure the Spam folder exists. */
         if (!$GLOBALS['injector']->getInstance('IMP_Folder')->exists($spam_folder)) {
index 42ac74a..8dc29c8 100644 (file)
@@ -204,9 +204,9 @@ class IMP_Spam
                     break;
 
                 case 2:
-                    $targetMbox = IMP::folderPref($GLOBALS['prefs']->getValue('spam_folder'), true);
+                    $targetMbox = $GLOBALS['prefs']->getValue('spam_folder');
                     if ($targetMbox) {
-                        if (!$imp_message->copy($targetMbox, 'move', $indices, array('create' => true))) {
+                        if (!$imp_message->copy(IMP::folderPref($targetMbox, true), 'move', $indices, array('create' => true))) {
                             $result = 0;
                         }
                     } else {