From c8cf71f8d56acc757d7a9c7540215c88318f41dd Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 22 Jan 2010 09:52:22 -0500
Subject: [PATCH] made php open_basdir configurable per website. Added a global default for the .htaccess allow_override setting.

---
 interface/web/sites/web_domain_edit.php |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php
index 5887be6..e874387 100644
--- a/interface/web/sites/web_domain_edit.php
+++ b/interface/web/sites/web_domain_edit.php
@@ -293,11 +293,13 @@
 		}
 		
 		// Set the values for document_root, system_user and system_group
-		$system_user = 'web'.$this->id;
-		$system_group = 'client'.$client_id;
-		$document_root = str_replace("[client_id]",$client_id,$document_root);
+		$system_user = $app->db->quote('web'.$this->id);
+		$system_group = $app->db->quote('client'.$client_id);
+		$document_root = $app->db->quote(str_replace("[client_id]",$client_id,$document_root));
+		$php_open_basedir = $app->db->quote(str_replace("[website_path]",$document_root,$web_config["php_open_basedir"]));
+		$htaccess_allow_override = $app->db->quote($web_config["htaccess_allow_override"]);
 		
-		$sql = "UPDATE web_domain SET system_user = '$system_user', system_group = '$system_group', document_root = '$document_root' WHERE domain_id = ".$this->id;
+		$sql = "UPDATE web_domain SET system_user = '$system_user', system_group = '$system_group', document_root = '$document_root', allow_override = '$htaccess_allow_override', php_open_basedir = '$php_open_basedir'  WHERE domain_id = ".$this->id;
 		$app->db->query($sql);
 	}
 	
@@ -372,9 +374,9 @@
 		
 		if(($_SESSION["s"]["user"]["typ"] == 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) &&  isset($this->dataRecord["client_group_id"]) && $this->dataRecord["client_group_id"] != $this->oldDataRecord["client_group_id"]) {
 			// Set the values for document_root, system_user and system_group
-			$system_user = 'web'.$this->id;
-			$system_group = 'client'.$client_id;
-			$document_root = str_replace("[client_id]",$client_id,$document_root);
+			$system_user = $app->db->quote('web'.$this->id);
+			$system_group = $app->db->quote('client'.$client_id);
+			$document_root = $app->db->quote(str_replace("[client_id]",$client_id,$document_root));
 		
 			$sql = "UPDATE web_domain SET system_user = '$system_user', system_group = '$system_group', document_root = '$document_root' WHERE domain_id = ".$this->id;
 			//$sql = "UPDATE web_domain SET system_user = '$system_user', system_group = '$system_group' WHERE domain_id = ".$this->id;
@@ -393,6 +395,17 @@
 			unset($subdomain);
 		}
 		
+		//* Set allow_override and php_open_basedir if empty
+		if($web_rec['allow_override'] == '') {
+			$sql = "UPDATE web_domain SET allow_override = '".$app->db->quote($web_config["htaccess_allow_override"])."' WHERE domain_id = ".$this->id;
+			$app->db->query($sql);
+		}
+		if($web_rec['php_open_basedir'] == '') {
+			$php_open_basedir = $app->db->quote(str_replace("[website_path]",$document_root,$web_config["php_open_basedir"]));
+			$sql = "UPDATE web_domain SET php_open_basedir = '$php_open_basedir' WHERE domain_id = ".$this->id;
+			$app->db->query($sql);
+		}
+		
 	}
 	
 	function onAfterDelete() {

--
Gitblit v1.9.1