From ae070732d9a08fd4d1741530a9b51a19ab027d26 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Mon, 10 Feb 2014 04:57:09 -0500
Subject: [PATCH] Fixed issue with shell user creation due to missing parent user and group values in shell_user database records.

---
 interface/web/client/client_template_edit.php |   34 ++++++++++++++++++++++++----------
 1 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/interface/web/client/client_template_edit.php b/interface/web/client/client_template_edit.php
index bf27959..bc5c6d2 100644
--- a/interface/web/client/client_template_edit.php
+++ b/interface/web/client/client_template_edit.php
@@ -1,6 +1,6 @@
 <?php
 /*
-Copyright (c) 2007-2008, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
+Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh and Oliver Vogel www.muv.com
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without modification,
@@ -38,9 +38,8 @@
 * End Form configuration
 ******************************************/
 
-require_once('../../lib/config.inc.php');
-require_once('../../lib/app.inc.php');
-require_once('tools.inc.php');
+require_once '../../lib/config.inc.php';
+require_once '../../lib/app.inc.php';
 
 //* Check permissions for module
 $app->auth->check_module_permissions('client');
@@ -52,9 +51,22 @@
 
 class page_action extends tform_actions {
 
-	function onBeforeUpdate() {
+	
+	function onSubmit() {
 		global $app;
 		
+		//* Resellers shall not be able to create another reseller or set reseller specific settings
+		if($_SESSION["s"]["user"]["typ"] == 'user') {
+			$this->dataRecord['limit_client'] = 0;
+			$this->dataRecord['limit_domainmodule'] = 0;
+		}
+		
+		parent::onSubmit();
+	}
+	
+	function onBeforeUpdate() {
+		global $app;
+
 		if(isset($this->dataRecord['template_type'])) {
 			//* Check if the template_type has been changed
 			$rec = $app->db->queryOneRecord("SELECT template_type from client_template WHERE template_id = ".$this->id);
@@ -66,30 +78,32 @@
 			unset($rec);
 		}
 	}
-	
-	
+
+
 	/*
 	 This function is called automatically right after
 	 the data was successful updated in the database.
 	*/
 	function onAfterUpdate() {
 		global $app;
-		
+
+		$app->uses('client_templates');
 		/*
 		 * the template has changed. apply the new data to all clients
 		 */
 		if ($this->dataRecord["template_type"] == 'm'){
 			$sql = "SELECT client_id FROM client WHERE template_master = " . $this->id;
 		} else {
-			$sql = "SELECT client_id FROM client WHERE template_additional LIKE '%/" . $this->id . '/%"';
+			$sql = "SELECT client_id FROM client WHERE template_additional LIKE '%/" . $this->id . "/%' OR template_additional LIKE '" . $this->id . "/%' OR template_additional LIKE '%/" . $this->id . "' UNION SELECT client_id FROM client_template_assigned WHERE client_template_id = " . $this->id;
 		}
 		$clients = $app->db->queryAllRecords($sql);
 		if (is_array($clients)){
 			foreach ($clients as $client){
-				applyClientTemplates($client['client_id']);
+				$app->client_templates->apply_client_templates($client['client_id']);
 			}
 		}
 	}
+
 }
 
 $page = new page_action;

--
Gitblit v1.9.1