From fc85c73e1de4426f9fd50d75292ec130b62d2fa6 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 06 Feb 2013 09:34:57 -0500
Subject: [PATCH] FS#2651 - Improve mailman configuration

---
 server/plugins-available/apache2_plugin.inc.php |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 42b9c63..2c93cc8 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -243,7 +243,17 @@
 			if(trim($data["new"]["ssl_request"]) != '') $app->system->file_put_contents($csr_file,$data["new"]["ssl_request"]);
 			if(trim($data["new"]["ssl_cert"]) != '') $app->system->file_put_contents($crt_file,$data["new"]["ssl_cert"]);
 			if(trim($data["new"]["ssl_bundle"]) != '') $app->system->file_put_contents($bundle_file,$data["new"]["ssl_bundle"]);
-			if(trim($data["new"]["ssl_key"]) != '') $app->system->file_put_contents($key_file2,$data["new"]["ssl_key"]);
+			
+			//* Write the key file, if field is empty then import the key into the db
+			if(trim($data["new"]["ssl_key"]) != '') {
+				$app->system->file_put_contents($key_file2,$data["new"]["ssl_key"]);
+			} else {
+				$ssl_key2 = $app->db->quote($app->system->file_get_contents($key_file2));
+				/* Update the DB of the (local) Server */
+				$app->db->query("UPDATE web_domain SET ssl_key = '$ssl_key2' WHERE domain = '".$data['new']['domain']."'");
+				/* Update also the master-DB of the Server-Farm */
+				$app->dbmaster->query("UPDATE web_domain SET ssl_key = '$ssl_key2' WHERE domain = '".$data['new']['domain']."'");
+			}
 			
 			/* Update the DB of the (local) Server */
 			$app->db->query("UPDATE web_domain SET ssl_action = '' WHERE domain = '".$data['new']['domain']."'");
@@ -2656,6 +2666,17 @@
 			
 			$client_dir = $web_config['website_basedir'].'/clients/client'.$client_id;
 			if(is_dir($client_dir) && !stristr($client_dir,'..')) {
+				// remove symlinks from $client_dir
+				$files = array_diff(scandir($client_dir), array('.','..'));
+				if(is_array($files) && !empty($files)){
+					foreach($files as $file){
+						if(is_link($client_dir.'/'.$file)){
+							unlink($client_dir.'/'.$file);
+							$app->log('Removed symlink: '.$client_dir.'/'.$file,LOGLEVEL_DEBUG);
+						}
+					}
+				}
+				
 				@rmdir($client_dir);
 				$app->log('Removed client directory: '.$client_dir,LOGLEVEL_DEBUG);
 			}

--
Gitblit v1.9.1