From 31e0d15191bb745a03057544adb224f6f1ef67f2 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 26 Jan 2012 09:48:42 -0500
Subject: [PATCH] Merged revisions 2911-2912 from stable branch.

---
 interface/web/sites/templates/web_aliasdomain_edit.htm |   22 ++++
 install/lib/installer_base.lib.php                     |   17 +++
 install/tpl/fedora_dovecot2.conf.master                |   42 ++++++++
 install/dist/lib/fedora.lib.php                        |   17 +++
 install/tpl/debian_dovecot2.conf.master                |   42 ++++++++
 install/tpl/opensuse_dovecot2.conf.master              |   42 ++++++++
 interface/web/sites/templates/web_subdomain_edit.htm   |   22 ++++
 install/dist/lib/opensuse.lib.php                      |   17 +++
 install/tpl/debian6_dovecot2.conf.master               |   42 ++++++++
 install/dist/lib/debian60.lib.php                      |   15 ++
 interface/web/sites/templates/web_domain_redirect.htm  |   10 ++
 11 files changed, 279 insertions(+), 9 deletions(-)

diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php
index 4512f40..88ba5d2 100644
--- a/install/dist/lib/debian60.lib.php
+++ b/install/dist/lib/debian60.lib.php
@@ -76,7 +76,20 @@
 		if(is_file($config_dir.'/'.$configfile)){
 			copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~');
 		}
-		copy('tpl/debian6_dovecot.conf.master',$config_dir.'/'.$configfile);
+		
+		//* Get the dovecot version
+		exec('dovecot --version',$tmp);
+		$parts = explode('.',trim($tmp[0]));
+		$dovecot_version = $parts[0];
+		unset($tmp);
+		unset($parts);
+		
+		//* Copy dovecot configuration file
+		if($dovecot_version == 2) {
+			copy('tpl/debian6_dovecot2.conf.master',$config_dir.'/'.$configfile);
+		} else {
+			copy('tpl/debian6_dovecot.conf.master',$config_dir.'/'.$configfile);
+		}
 		
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index a3da18a..3b0d6cd 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -308,12 +308,25 @@
 			caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		
-		//* copy dovecot.conf
+		//* backup dovecot.conf
 		$configfile = 'dovecot.conf';
 		if(is_file("$config_dir/$configfile")){
             copy("$config_dir/$configfile", "$config_dir/$configfile~");
         }
-		copy('tpl/fedora_dovecot.conf.master',"$config_dir/$configfile");
+		
+		//* Get the dovecot version
+		exec('dovecot --version',$tmp);
+		$parts = explode('.',trim($tmp[0]));
+		$dovecot_version = $parts[0];
+		unset($tmp);
+		unset($parts);
+		
+		//* Copy dovecot configuration file
+		if($dovecot_version == 2) {
+			copy('tpl/fedora_dovecot2.conf.master',$config_dir.'/'.$configfile);
+		} else {
+			copy('tpl/fedora_dovecot.conf.master',$config_dir.'/'.$configfile);
+		}
 		
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index 7b51cac..db435ee 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -349,12 +349,25 @@
 			caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		
-		//* copy dovecot.conf
+		//* backup dovecot.conf
 		$configfile = 'dovecot.conf';
 		if(is_file("$config_dir/$configfile")){
             copy("$config_dir/$configfile", "$config_dir/$configfile~");
         }
-		copy('tpl/opensuse_dovecot.conf.master',"$config_dir/$configfile");
+		
+		//* Get the dovecot version
+		exec('dovecot --version',$tmp);
+		$parts = explode('.',trim($tmp[0]));
+		$dovecot_version = $parts[0];
+		unset($tmp);
+		unset($parts);
+		
+		//* Copy dovecot configuration file
+		if($dovecot_version == 2) {
+			copy('tpl/opensuse_dovecot2.conf.master',$config_dir.'/'.$configfile);
+		} else {
+			copy('tpl/opensuse_dovecot.conf.master',$config_dir.'/'.$configfile);
+		}
 		
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 0c122a4..ae279ab 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -895,12 +895,25 @@
 			caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 
-		//* copy dovecot.conf
+		//* backup dovecot.conf
 		$configfile = 'dovecot.conf';
 		if(is_file($config_dir.'/'.$configfile)) {
 			copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~');
 		}
-		copy('tpl/debian_dovecot.conf.master',$config_dir.'/'.$configfile);
+		
+		//* Get the dovecot version
+		exec('dovecot --version',$tmp);
+		$parts = explode('.',trim($tmp[0]));
+		$dovecot_version = $parts[0];
+		unset($tmp);
+		unset($parts);
+		
+		//* Copy dovecot configuration file
+		if($dovecot_version == 2) {
+			copy('tpl/debian_dovecot2.conf.master',$config_dir.'/'.$configfile);
+		} else {
+			copy('tpl/debian_dovecot.conf.master',$config_dir.'/'.$configfile);
+		}
 
 		//* dovecot-sql.conf
 		$configfile = 'dovecot-sql.conf';
diff --git a/install/tpl/debian6_dovecot2.conf.master b/install/tpl/debian6_dovecot2.conf.master
new file mode 100644
index 0000000..bf37bd5
--- /dev/null
+++ b/install/tpl/debian6_dovecot2.conf.master
@@ -0,0 +1,42 @@
+protocols = imap pop3
+auth_mechanisms = plain login
+disable_plaintext_auth = no
+log_timestamp = "%Y-%m-%d %H:%M:%S "
+mail_privileged_group = vmail
+ssl_cert = </etc/postfix/smtpd.cert
+ssl_key = </etc/postfix/smtpd.key
+passdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+userdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+plugin {
+  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
+  sieve=/var/vmail/%d/%n/.sieve
+}
+service auth {
+  unix_listener /var/spool/postfix/private/auth {
+    group = postfix
+    mode = 0660
+    user = postfix
+  }
+  unix_listener auth-userdb {
+    group = vmail
+    mode = 0600
+    user = vmail
+  }
+  user = root
+}
+protocol imap {
+  mail_plugins = quota imap_quota
+}
+protocol pop3 {
+  pop3_uidl_format = %08Xu%08Xv
+  mail_plugins = quota
+}
+protocol lda {
+  mail_plugins = sieve quota
+}
\ No newline at end of file
diff --git a/install/tpl/debian_dovecot2.conf.master b/install/tpl/debian_dovecot2.conf.master
new file mode 100644
index 0000000..bf37bd5
--- /dev/null
+++ b/install/tpl/debian_dovecot2.conf.master
@@ -0,0 +1,42 @@
+protocols = imap pop3
+auth_mechanisms = plain login
+disable_plaintext_auth = no
+log_timestamp = "%Y-%m-%d %H:%M:%S "
+mail_privileged_group = vmail
+ssl_cert = </etc/postfix/smtpd.cert
+ssl_key = </etc/postfix/smtpd.key
+passdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+userdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+plugin {
+  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
+  sieve=/var/vmail/%d/%n/.sieve
+}
+service auth {
+  unix_listener /var/spool/postfix/private/auth {
+    group = postfix
+    mode = 0660
+    user = postfix
+  }
+  unix_listener auth-userdb {
+    group = vmail
+    mode = 0600
+    user = vmail
+  }
+  user = root
+}
+protocol imap {
+  mail_plugins = quota imap_quota
+}
+protocol pop3 {
+  pop3_uidl_format = %08Xu%08Xv
+  mail_plugins = quota
+}
+protocol lda {
+  mail_plugins = sieve quota
+}
\ No newline at end of file
diff --git a/install/tpl/fedora_dovecot2.conf.master b/install/tpl/fedora_dovecot2.conf.master
new file mode 100644
index 0000000..b45ef3d
--- /dev/null
+++ b/install/tpl/fedora_dovecot2.conf.master
@@ -0,0 +1,42 @@
+protocols = imap pop3
+auth_mechanisms = plain login
+disable_plaintext_auth = no
+log_timestamp = "%Y-%m-%d %H:%M:%S "
+mail_privileged_group = vmail
+ssl_cert = </etc/postfix/smtpd.cert
+ssl_key = </etc/postfix/smtpd.key
+passdb {
+  args = /etc/dovecot-sql.conf
+  driver = sql
+}
+userdb {
+  args = /etc/dovecot-sql.conf
+  driver = sql
+}
+plugin {
+  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
+  sieve=/var/vmail/%d/%n/.sieve
+}
+service auth {
+  unix_listener /var/spool/postfix/private/auth {
+    group = postfix
+    mode = 0660
+    user = postfix
+  }
+  unix_listener auth-userdb {
+    group = vmail
+    mode = 0600
+    user = vmail
+  }
+  user = root
+}
+protocol imap {
+  mail_plugins = quota imap_quota
+}
+protocol pop3 {
+  pop3_uidl_format = %08Xu%08Xv
+  mail_plugins = quota
+}
+protocol lda {
+  mail_plugins = sieve quota
+}
\ No newline at end of file
diff --git a/install/tpl/opensuse_dovecot2.conf.master b/install/tpl/opensuse_dovecot2.conf.master
new file mode 100644
index 0000000..bf37bd5
--- /dev/null
+++ b/install/tpl/opensuse_dovecot2.conf.master
@@ -0,0 +1,42 @@
+protocols = imap pop3
+auth_mechanisms = plain login
+disable_plaintext_auth = no
+log_timestamp = "%Y-%m-%d %H:%M:%S "
+mail_privileged_group = vmail
+ssl_cert = </etc/postfix/smtpd.cert
+ssl_key = </etc/postfix/smtpd.key
+passdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+userdb {
+  args = /etc/dovecot/dovecot-sql.conf
+  driver = sql
+}
+plugin {
+  quota = dict:user::file:/var/vmail/%d/%n/.quotausage
+  sieve=/var/vmail/%d/%n/.sieve
+}
+service auth {
+  unix_listener /var/spool/postfix/private/auth {
+    group = postfix
+    mode = 0660
+    user = postfix
+  }
+  unix_listener auth-userdb {
+    group = vmail
+    mode = 0600
+    user = vmail
+  }
+  user = root
+}
+protocol imap {
+  mail_plugins = quota imap_quota
+}
+protocol pop3 {
+  pop3_uidl_format = %08Xu%08Xv
+  mail_plugins = quota
+}
+protocol lda {
+  mail_plugins = sieve quota
+}
\ No newline at end of file
diff --git a/interface/web/sites/templates/web_aliasdomain_edit.htm b/interface/web/sites/templates/web_aliasdomain_edit.htm
index 9d8cd9d..7591c6f 100644
--- a/interface/web/sites/templates/web_aliasdomain_edit.htm
+++ b/interface/web/sites/templates/web_aliasdomain_edit.htm
@@ -75,7 +75,12 @@
 			jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) {
 				var selected = jQuery('#redirect_type').val();
 				if(data.servertype == "nginx"){
-					jQuery('#redirect_type option[value="R"]').hide();
+					jQuery("#redirect_type option[value='R']").attr('disabled','disabled');
+					jQuery('#redirect_type option[value="L"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="R,L"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="R=301,L"]').attr('disabled','disabled');
+					
+					jQuery("#redirect_type option[value='R']").hide();
 					jQuery('#redirect_type option[value="L"]').hide();
 					jQuery('#redirect_type option[value="R,L"]').hide();
 					jQuery('#redirect_type option[value="R=301,L"]').hide();
@@ -85,8 +90,18 @@
 					jQuery('#redirect_type option[value="redirect"]').show();
 					jQuery('#redirect_type option[value="permanent"]').show();
 					
+					jQuery('#redirect_type option[value="last"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="break"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="redirect"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="permanent"]').attr('disabled',false);
+					
 					if(selected != "no" && selected != "" && selected != "last"  && selected != "break"  && selected != "redirect"  && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
 				} else {
+					jQuery('#redirect_type option[value="last"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="break"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled');
+					
 					jQuery('#redirect_type option[value="last"]').hide();
 					jQuery('#redirect_type option[value="break"]').hide();
 					jQuery('#redirect_type option[value="redirect"]').hide();
@@ -97,6 +112,11 @@
 					jQuery('#redirect_type option[value="R,L"]').show();
 					jQuery('#redirect_type option[value="R=301,L"]').show();
 					
+					jQuery('#redirect_type option[value="R"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="L"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="R,L"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="R=301,L"]').attr('disabled',false);
+					
 					if(selected != "no" && selected != "" && selected != "R"  && selected != "L"  && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
 				}
 			});
diff --git a/interface/web/sites/templates/web_domain_redirect.htm b/interface/web/sites/templates/web_domain_redirect.htm
index 1c78b41..2d926cf 100644
--- a/interface/web/sites/templates/web_domain_redirect.htm
+++ b/interface/web/sites/templates/web_domain_redirect.htm
@@ -48,12 +48,22 @@
 			jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) {
 				var selected = jQuery('#redirect_type').val();
 				if(data.servertype == "nginx"){
+				jQuery("#redirect_type option[value='R']").attr('disabled','disabled');
+					jQuery('#redirect_type option[value="L"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="R,L"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="R=301,L"]').attr('disabled','disabled');
+
 					jQuery('#redirect_type option[value="R"]').hide();
 					jQuery('#redirect_type option[value="L"]').hide();
 					jQuery('#redirect_type option[value="R,L"]').hide();
 					jQuery('#redirect_type option[value="R=301,L"]').hide();
 					if(selected != "no" && selected != "" && selected != "last"  && selected != "break"  && selected != "redirect"  && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
 				} else {
+				jQuery('#redirect_type option[value="last"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="break"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled');
+					
 					jQuery('#redirect_type option[value="last"]').hide();
 					jQuery('#redirect_type option[value="break"]').hide();
 					jQuery('#redirect_type option[value="redirect"]').hide();
diff --git a/interface/web/sites/templates/web_subdomain_edit.htm b/interface/web/sites/templates/web_subdomain_edit.htm
index 85f35c7..0acbe13 100644
--- a/interface/web/sites/templates/web_subdomain_edit.htm
+++ b/interface/web/sites/templates/web_subdomain_edit.htm
@@ -62,7 +62,12 @@
 			jQuery.getJSON('sites/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {server_id : serverId, type : "getservertype"}, function(data) {
 				var selected = jQuery('#redirect_type').val();
 				if(data.servertype == "nginx"){
-					jQuery('#redirect_type option[value="R"]').hide();
+					jQuery("#redirect_type option[value='R']").attr('disabled','disabled');
+					jQuery('#redirect_type option[value="L"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="R,L"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="R=301,L"]').attr('disabled','disabled');
+					
+					jQuery("#redirect_type option[value='R']").hide();
 					jQuery('#redirect_type option[value="L"]').hide();
 					jQuery('#redirect_type option[value="R,L"]').hide();
 					jQuery('#redirect_type option[value="R=301,L"]').hide();
@@ -72,8 +77,18 @@
 					jQuery('#redirect_type option[value="redirect"]').show();
 					jQuery('#redirect_type option[value="permanent"]').show();
 					
+					jQuery('#redirect_type option[value="last"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="break"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="redirect"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="permanent"]').attr('disabled',false);
+					
 					if(selected != "no" && selected != "" && selected != "last"  && selected != "break"  && selected != "redirect"  && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
 				} else {
+					jQuery('#redirect_type option[value="last"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="break"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="redirect"]').attr('disabled','disabled');
+					jQuery('#redirect_type option[value="permanent"]').attr('disabled','disabled');
+					
 					jQuery('#redirect_type option[value="last"]').hide();
 					jQuery('#redirect_type option[value="break"]').hide();
 					jQuery('#redirect_type option[value="redirect"]').hide();
@@ -84,6 +99,11 @@
 					jQuery('#redirect_type option[value="R,L"]').show();
 					jQuery('#redirect_type option[value="R=301,L"]').show();
 					
+					jQuery('#redirect_type option[value="R"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="L"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="R,L"]').attr('disabled',false);
+					jQuery('#redirect_type option[value="R=301,L"]').attr('disabled',false);
+					
 					if(selected != "no" && selected != "" && selected != "R"  && selected != "L"  && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected');
 				}
 			});

--
Gitblit v1.9.1