From 15d78a3e167f3783377ca2c1d8f570a25d137b35 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 17 Oct 2007 14:55:24 -0400
Subject: [PATCH] added symlink creation for websites on the server.

---
 server/plugins-enabled/apache2_plugin.inc.php |   14 +++++++++++++-
 interface/web/sites/web_domain_edit.php       |    8 ++++----
 server/mods-enabled/web_module.inc.php        |   18 +++++++++++++++++-
 3 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php
index 7b1bc6d..6790f3c 100644
--- a/interface/web/sites/web_domain_edit.php
+++ b/interface/web/sites/web_domain_edit.php
@@ -199,8 +199,8 @@
 			$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
 			$client_id = intval($client["client_id"]);
 		} else {
-			$client_id = intval($this->dataRecord["client_group_id"]);
-			$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($this->dataRecord["client_group_id"]));
+			//$client_id = intval($this->dataRecord["client_group_id"]);
+			$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($this->dataRecord["sys_groupid"]));
 			$client_id = intval($client["client_id"]);
 		}
 		
@@ -235,8 +235,8 @@
 			$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
 			$client_id = intval($client["client_id"]);
 		} else {
-			$client_id = intval(@$web_rec["client_group_id"]);
-			$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval(@$this->dataRecord["client_group_id"]));
+			//$client_id = intval(@$web_rec["client_group_id"]);
+			$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval(@$this->dataRecord["sys_groupid"]));
 			$client_id = intval($client["client_id"]);
 		}
 		
diff --git a/server/mods-enabled/web_module.inc.php b/server/mods-enabled/web_module.inc.php
index 5377911..1b4c8b8 100644
--- a/server/mods-enabled/web_module.inc.php
+++ b/server/mods-enabled/web_module.inc.php
@@ -34,7 +34,13 @@
 	var $class_name = 'web_module';
 	var $actions_available = array(	'web_domain_insert',
 									'web_domain_update',
-									'web_domain_delete');
+									'web_domain_delete',
+									'ftp_user_insert',
+									'ftp_user_update',
+									'ftp_user_delete',
+									'shell_user_insert',
+									'shell_user_update',
+									'shell_user_delete');
 	
 	/*
 	 	This function is called when the module is loaded
@@ -81,6 +87,16 @@
 				if($action == 'u') $app->plugins->raiseEvent('web_domain_update',$data);
 				if($action == 'd') $app->plugins->raiseEvent('web_domain_delete',$data);
 			break;
+			case 'ftp_user':
+				if($action == 'i') $app->plugins->raiseEvent('ftp_user_insert',$data);
+				if($action == 'u') $app->plugins->raiseEvent('ftp_user_update',$data);
+				if($action == 'd') $app->plugins->raiseEvent('ftp_user_delete',$data);
+			break;
+			case 'shell_user':
+				if($action == 'i') $app->plugins->raiseEvent('shell_user_insert',$data);
+				if($action == 'u') $app->plugins->raiseEvent('shell_user_update',$data);
+				if($action == 'd') $app->plugins->raiseEvent('shell_user_delete',$data);
+			break;
 		} // end switch
 	} // end function
 	
diff --git a/server/plugins-enabled/apache2_plugin.inc.php b/server/plugins-enabled/apache2_plugin.inc.php
index dc8dc38..520bcb7 100644
--- a/server/plugins-enabled/apache2_plugin.inc.php
+++ b/server/plugins-enabled/apache2_plugin.inc.php
@@ -104,7 +104,19 @@
 		if(!is_dir('/var/log/ispconfig/httpd/'.$data["new"]["domain"])) exec('mkdir -p /var/log/ispconfig/httpd/'.$data["new"]["domain"]);
 		if(!is_link($data["new"]["document_root"]."/log")) exec("ln -s /var/log/ispconfig/httpd/".$data["new"]["domain"]." ".$data["new"]["document_root"]."/log");
 		
-		// TODO: Create the symlinks
+		// Create the symlinks for the sites
+		$client = $app->db->queryOneRecord("SELECT client_id FROM sys_group WHERE sys_group.groupid = ".intval($data["new"]["sys_groupid"]));
+		$client_id = intval($client["client_id"]);
+		unset($client);
+		$tmp_symlinks_array = explode(':',$web_config["website_symlinks"]);
+		foreach($tmp_symlinks_array as $tmp_symlink) {
+			$tmp_symlink = str_replace("[client_id]",$client_id,$tmp_symlink);
+			$tmp_symlink = str_replace("[website_domain]",$data["new"]["domain"],$tmp_symlink);
+			if(!is_link($tmp_symlink)) {
+				exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink));
+				$app->log("Creating Symlink: ln -s ".$data["new"]["document_root"]."/ ".$tmp_symlink,LOGLEVEL_DEBUG);
+			}
+		}
 		
 		// Copy the error pages
 		$error_page_path = escapeshellcmd($data["new"]["web_document_root"])."/web/error/";

--
Gitblit v1.9.1