From ae6b86b02a9f8211a51966ac7150499da103dce9 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 18 Nov 2011 06:06:57 -0500
Subject: [PATCH] - Select sieve template depending on dovecot version as doevceot 1.0 does not support the new date based autoresponders. - Cleaned up opensuse dovecot-sql.conf file

---
 install/tpl/opensuse_dovecot-sql.conf.master        |    1 -
 server/plugins-available/maildeliver_plugin.inc.php |   18 ++++++++++++++++--
 server/conf/sieve_filter_1.2.master                 |    0 
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/install/tpl/opensuse_dovecot-sql.conf.master b/install/tpl/opensuse_dovecot-sql.conf.master
index de28a7c..66bcdc8 100644
--- a/install/tpl/opensuse_dovecot-sql.conf.master
+++ b/install/tpl/opensuse_dovecot-sql.conf.master
@@ -134,5 +134,4 @@
 default_pass_scheme = CRYPT
 
 password_query = SELECT password FROM mail_user WHERE login = '%u' AND disable%Ls = 'n'
-# user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE login = '%u' AND disable%Ls = 'n'
 user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE email = '%u' AND disable%Ls = 'n'
diff --git a/server/conf/sieve_filter.master b/server/conf/sieve_filter_1.2.master
similarity index 100%
rename from server/conf/sieve_filter.master
rename to server/conf/sieve_filter_1.2.master
diff --git a/server/plugins-available/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php
index 0576fde..1f3c563 100644
--- a/server/plugins-available/maildeliver_plugin.inc.php
+++ b/server/plugins-available/maildeliver_plugin.inc.php
@@ -100,9 +100,23 @@
 			if(is_file($sieve_file)) unlink($sieve_file)  or $app->log("Unable to delete file: $sieve_file",LOGLEVEL_WARN);
 				
 			$app->load('tpl');
-		
+			
+			//* Select sieve filter file for dovecot version
+			exec('dovecot --version',$tmp);
+			if(substr($tmp[0],0,3) == '1.0') {
+				$filter_file_template = "sieve_filter.master";
+			} elseif(substr($tmp[0],0,3) == '1.2') {
+				$filter_file_template = "sieve_filter_1.2.master";
+			} elseif(substr($tmp[0],0,1) == '2') {
+				$filter_file_template = "sieve_filter_1.2.master";
+			} else {
+				$filter_file_template = "sieve_filter.master";
+			}
+			unset($tmp);
+			
+			//* Create new filter file based on template
 			$tpl = new tpl();
-			$tpl->newTemplate("sieve_filter.master");
+			$tpl->newTemplate($filter_file_template);
 			
 			// cc Field
 			$tpl->setVar('cc',$data["new"]["cc"]);

--
Gitblit v1.9.1