MFB:
authorJan Schneider <jan@horde.org>
Thu, 14 May 2009 13:54:24 +0000 (15:54 +0200)
committerJan Schneider <jan@horde.org>
Thu, 14 May 2009 13:57:55 +0000 (15:57 +0200)
[jan] Take default settings for forwards, vacation and spam rules from
      config/prefs.php in the SQL storage driver.

ingo/docs/CHANGES
ingo/lib/Storage/prefs.php
ingo/lib/Storage/sql.php

index 1375587..ef2a700 100644 (file)
@@ -9,6 +9,9 @@ v2.0-git
 v1.2.2-cvs
 ----------
 
+[jan] Take default settings for forwards, vacation and spam rules from
+      config/prefs.php in the SQL storage driver.
+[jan] No longer try to read spam folder from IMP's preferences.
 [jan] Fix maildrop rules without conditions (almarin@um.es, Bug #8103).
 [cjh] Fix checks for the forward_file and forward_script procmail parameters
       in the VFS driver (Bug #7811).
index 4054717..dc0b01c 100644 (file)
@@ -48,6 +48,14 @@ class Ingo_Storage_prefs extends Ingo_Storage
             }
             break;
 
+        case self::ACTION_WHITELIST:
+            $ob = new Ingo_Storage_whitelist();
+            $data = @unserialize($prefs->getValue('whitelist'));
+            if ($data) {
+                $ob->setWhitelist($data, false);
+            }
+            break;
+
         case self::ACTION_FILTERS:
             $ob = new Ingo_Storage_filters();
             $data = @unserialize($prefs->getValue('rules', false));
@@ -96,14 +104,6 @@ class Ingo_Storage_prefs extends Ingo_Storage
             }
             break;
 
-        case self::ACTION_WHITELIST:
-            $ob = new Ingo_Storage_whitelist();
-            $data = @unserialize($prefs->getValue('whitelist'));
-            if ($data) {
-                $ob->setWhitelist($data, false);
-            }
-            break;
-
         case self::ACTION_SPAM:
             $ob = new Ingo_Storage_spam();
             $data = @unserialize($prefs->getValue('spam'));
index b6d6ed7..a5af725 100644 (file)
@@ -184,6 +184,9 @@ class Ingo_Storage_sql extends Ingo_Storage
                 $ob->setForwardAddresses(explode("\n", $data['forward_addresses']), false);
                 $ob->setForwardKeep((bool)$data['forward_keep']);
                 $ob->setSaved(true);
+            } elseif ($data = @unserialize($GLOBALS['prefs']->getDefault('vacation'))) {
+                $ob->setForwardAddresses($data['a'], false);
+                $ob->setForwardKeep($data['k']);
             }
             break;
 
@@ -206,6 +209,19 @@ class Ingo_Storage_sql extends Ingo_Storage
                 $ob->setVacationReason(String::convertCharset($data['vacation_reason'], $this->_params['charset']));
                 $ob->setVacationSubject(String::convertCharset($data['vacation_subject'], $this->_params['charset']));
                 $ob->setSaved(true);
+            } elseif ($data = @unserialize($GLOBALS['prefs']->getDefault('vacation'))) {
+                $ob->setVacationAddresses($data['addresses'], false);
+                $ob->setVacationDays($data['days']);
+                $ob->setVacationExcludes($data['excludes'], false);
+                $ob->setVacationIgnorelist($data['ignorelist']);
+                $ob->setVacationReason($data['reason']);
+                $ob->setVacationSubject($data['subject']);
+                if (isset($data['start'])) {
+                    $ob->setVacationStart($data['start']);
+                }
+                if (isset($data['end'])) {
+                    $ob->setVacationEnd($data['end']);
+                }
             }
             break;
 
@@ -222,6 +238,9 @@ class Ingo_Storage_sql extends Ingo_Storage
                 $ob->setSpamFolder($data['spam_folder']);
                 $ob->setSpamLevel((int)$data['spam_level']);
                 $ob->setSaved(true);
+            } elseif ($data = @unserialize($GLOBALS['prefs']->getDefault('spam'))) {
+                $ob->setSpamFolder($data['folder']);
+                $ob->setSpamLevel($data['level']);
             }
             break;