From 4b72c51b4cfef36cf2e84f0791e0e85eb899a7f2 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Sun, 26 Sep 2010 14:19:20 -0400
Subject: [PATCH] Fixed a warning message when websites get deleted.

---
 server/plugins-available/apache2_plugin.inc.php |   36 +++++++++++++++++++++++++++++-------
 1 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index b2ddf9d..80d6849 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -927,7 +927,7 @@
 		$web_config = $app->getconf->get_server_config($conf["server_id"], 'web');
 
 		//* Check if this is a chrooted setup
-		if($web_config['website_basedir'] != '' && @is_file($web_config['/var/www'].'/etc/passwd')) {
+		if($web_config['website_basedir'] != '' && @is_file($web_config['website_basedir'].'/etc/passwd')) {
 			$apache_chrooted = true;
 		} else {
 			$apache_chrooted = false;
@@ -1052,13 +1052,14 @@
 	 */
 	public function webdav($event_name,$data) {
 		global $app, $conf;
+		
+		/*
+		 * load the server configuration options
+		*/
+		$app->uses("getconf");
+		$web_config = $app->getconf->get_server_config($conf["server_id"], 'web');
 
 		if (($event_name == 'webdav_user_insert') || ($event_name == 'webdav_user_update')) {
-			/*
-			 * load the server configuration options
-			*/
-			$app->uses("getconf");
-			$web_config = $app->getconf->get_server_config($conf["server_id"], 'web');
 
 			/*
 			 * Get additional informations
@@ -1134,12 +1135,29 @@
 			*/
 			$sitedata = $app->db->queryOneRecord("SELECT document_root, domain FROM web_domain WHERE domain_id = " . $data['old']['parent_domain_id']);
 			$documentRoot = $sitedata['document_root'];
+			$domain = $sitedata['domain'];
 
 			/*
 			 * We dont't want to destroy any (transfer)-Data. So we do NOT delete any dir.
 			 * So the only thing, we have to do, is to delete the user from the password-file
 			*/
 			$this->_writeHtDigestFile( $documentRoot . '/webdav/' . $data['old']['dir'] . '.htdigest', $data['old']['username'], $data['old']['dir'], '');
+			
+			/*
+			 * Next step, patch the vhost - file
+			*/
+			$vhost_file = escapeshellcmd($web_config["vhost_conf_dir"] . '/' . $domain . '.vhost');
+			$this->_patchVhostWebdav($vhost_file, $documentRoot . '/webdav');
+			
+			/*
+			 * Last, restart apache
+			*/
+			if($apache_chrooted) {
+				$app->services->restartServiceDelayed('httpd','restart');
+			} else {
+				// request a httpd reload when all records have been processed
+				$app->services->restartServiceDelayed('httpd','reload');
+			}
 		}
 	}
 
@@ -1190,7 +1208,11 @@
 		/*
 		 * Now lets write the new file
 		*/
-		file_put_contents($filename, $output);
+		if(trim($output) == '') {
+			unlink($filename);
+		} else {
+			file_put_contents($filename, $output);
+		}
 	}
 
 	/**

--
Gitblit v1.9.1