From 58053eae9b6a9c8865ef9375e54038fdafe91e84 Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Wed, 22 Aug 2012 05:56:07 -0400
Subject: [PATCH] Bugfix: Web folder protection did not work on web deletion Bugfix: $app->system->unlink function had wrong parameter name, no files were deleted ever

---
 server/plugins-available/nginx_plugin.inc.php |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 424d96f..cf8c98c 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -322,8 +322,12 @@
         $web_folder = 'web';
         $log_folder = 'log';
         if($data['new']['type'] == 'vhostsubdomain') {
+            $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = '.intval($data['new']['parent_domain_id']));
+            $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $data['new']['domain']);
+            if($subdomain_host == '') $subdomain_host = 'web'.$data['new']['domain_id'];
             $web_folder = $data['new']['web_folder'];
-            $log_folder .= '_web' . $data['new']['domain_id'];
+            $log_folder .= '/' . $subdomain_host;
+            unset($tmp);
         }
 
 		// Create group and user, if not exist
@@ -459,7 +463,7 @@
         if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/httpd/'.$data['new']['domain']);
 		if(!is_dir($data['new']['document_root'].'/'.$log_folder) || is_link($data['new']['document_root'].'/'.$log_folder)) {
 			if(is_link($data['new']['document_root'].'/'.$log_folder)) unlink($data['new']['document_root'].'/'.$log_folder);
-			$app->system->mkdir($data['new']['document_root'].'/'.$log_folder);
+			$app->system->mkdirpath($data['new']['document_root'].'/'.$log_folder);
 			$app->system->chown($data['new']['document_root'].'/'.$log_folder,'root');
 			$app->system->chgrp($data['new']['document_root'].'/'.$log_folder,'root');
 			$app->system->chmod($data['new']['document_root'].'/'.$log_folder,0755);
@@ -630,7 +634,7 @@
 				$app->system->chmod($data['new']['document_root'].'/tmp',0777);
 			
 				// Set Log directory to 755 to make the logs accessible by the FTP user
-				if(realpath($data['new']['document_root'].'/'.$log_folder) == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') {
+				if(realpath($data['new']['document_root'].'/'.$log_folder . '/error.log') == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') {
 					$app->system->chmod($data['new']['document_root'].'/'.$log_folder,0755);
 				}
 				

--
Gitblit v1.9.1