From 4c794a56f80f639867e90dd586cbf213ffa09e05 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Thu, 07 Aug 2014 02:07:02 -0400
Subject: [PATCH] Suppress output from exec

---
 interface/lib/classes/validate_client.inc.php |  111 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 76 insertions(+), 35 deletions(-)

diff --git a/interface/lib/classes/validate_client.inc.php b/interface/lib/classes/validate_client.inc.php
index 9b0546a..0f90a5b 100644
--- a/interface/lib/classes/validate_client.inc.php
+++ b/interface/lib/classes/validate_client.inc.php
@@ -29,59 +29,60 @@
 */
 
 class validate_client {
-	
+
 	/*
 		Validator function to check if a username is unique.
 	*/
 	function username_unique($field_name, $field_value, $validator) {
 		global $app;
-		
+
 		if(isset($app->remoting_lib->primary_id)) {
 			$client_id = $app->remoting_lib->primary_id;
 		} else {
 			$client_id = $app->tform->primary_id;
 		}
-		
+
 		if($client_id == 0) {
-        	$num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM sys_user WHERE username = '".$app->db->quote($field_value)."'");
-            	if($num_rec["number"] > 0) {
-                	$errmsg = $validator['errmsg'];
-					if(isset($app->tform->wordbook[$errmsg])) {
-                    	return $app->tform->wordbook[$errmsg]."<br>\r\n";
-					} else {
-						return $errmsg."<br>\r\n";
-					}
-                }
-        } else {
-        	$num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM sys_user WHERE username = '".$app->db->quote($field_value)."' AND client_id != ".$client_id);
+			$num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM sys_user WHERE username = '".$app->db->quote($field_value)."'");
 			if($num_rec["number"] > 0) {
-            	$errmsg = $validator['errmsg'];
-                if(isset($app->tform->wordbook[$errmsg])) {
-                	return $app->tform->wordbook[$errmsg]."<br>\r\n";
+				$errmsg = $validator['errmsg'];
+				if(isset($app->tform->wordbook[$errmsg])) {
+					return $app->tform->wordbook[$errmsg]."<br>\r\n";
+				} else {
+					return $errmsg."<br>\r\n";
+				}
+			}
+		} else {
+			$num_rec = $app->db->queryOneRecord("SELECT count(*) as number FROM sys_user WHERE username = '".$app->db->quote($field_value)."' AND client_id != ".$app->functions->intval($client_id));
+			if($num_rec["number"] > 0) {
+				$errmsg = $validator['errmsg'];
+				if(isset($app->tform->wordbook[$errmsg])) {
+					return $app->tform->wordbook[$errmsg]."<br>\r\n";
 				} else {
 					return $errmsg."<br>\r\n";
 				}
 			}
 		}
 	}
-	
+
 	function username_collision($field_name, $field_value, $validator) {
 		global $app;
-		
+
 		if(isset($app->remoting_lib->primary_id)) {
 			$client_id = $app->remoting_lib->primary_id;
 		} else {
 			$client_id = $app->tform->primary_id;
 		}
-		
+
 		$app->uses('getconf');
 		$global_config = $app->getconf->get_global_config('sites');
-		
-		if((trim($field_value) == 'web' || preg_match('/^web[0-9]/',$field_value)) && 
-		  ($global_config['ftpuser_prefix'] == '[CLIENTNAME]' || 
-		   $global_config['ftpuser_prefix'] == '' ||
-		   $global_config['shelluser_prefix'] == '[CLIENTNAME]' ||
-		   $global_config['shelluser_prefix'] == '' )) {
+
+		if((trim($field_value) == 'web' || preg_match('/^web[0-9]/', $field_value)) &&
+			($global_config['ftpuser_prefix'] == '[CLIENTNAME]' ||
+				$global_config['ftpuser_prefix'] == '' ||
+				$global_config['shelluser_prefix'] == '[CLIENTNAME]' ||
+				$global_config['shelluser_prefix'] == '' ) &&
+			$global_config['client_username_web_check_disabled'] == 'n') {
 			$errmsg = $validator['errmsg'];
 			if(isset($app->tform->wordbook[$errmsg])) {
 				return $app->tform->wordbook[$errmsg]."<br>\r\n";
@@ -89,13 +90,53 @@
 				return $errmsg."<br>\r\n";
 			}
 		}
-		
-		
-		
-		
+
+
+
+
 	}
-	
-	
-	
-	
-}
\ No newline at end of file
+
+	function check_used_servers($field_name, $field_value, $validator)
+	{
+		global $app;
+
+		if (is_array($field_value))
+		{
+			$client_id = intval($_POST['id']);
+			$used_servers = null;
+
+			switch ($field_name)
+			{
+			case 'web_servers':
+				$used_servers = $app->db->queryAllRecords('SELECT domain_id FROM web_domain INNER JOIN sys_user ON web_domain.sys_userid = sys_user.userid WHERE client_id = ' . $client_id . ' AND server_id NOT IN (' . implode(', ', $field_value) . ');');
+				break;
+
+			case 'dns_servers':
+				$used_servers = $app->db->queryAllRecords('SELECT id FROM dns_rr INNER JOIN sys_user ON dns_rr.sys_userid = sys_user.userid WHERE client_id = ' . $client_id . ' AND server_id NOT IN (' . implode(', ', $field_value) . ');');
+				break;
+
+			case 'db_servers':
+				$used_servers = $app->db->queryAllRecords('SELECT database_id FROM web_database INNER JOIN sys_user ON web_database.sys_userid = sys_user.userid WHERE client_id = ' . $client_id . ' AND server_id NOT IN (' . implode(', ', $field_value) . ');');
+				break;
+
+			case 'mail_servers':
+				$used_servers = $app->db->queryAllRecords('SELECT domain_id FROM mail_domain INNER JOIN sys_user ON mail_domain.sys_userid = sys_user.userid WHERE client_id = ' . $client_id . ' AND server_id NOT IN (' . implode(', ', $field_value) . ');');
+				break;
+			}
+
+			if ($used_servers === null || count($used_servers))
+			{
+				$errmsg = $validator['errmsg'];
+				if(isset($app->tform->wordbook[$errmsg])) {
+					return $app->tform->wordbook[$errmsg]."<br>\r\n";
+				} else {
+					return $errmsg."<br>\r\n";
+				}
+			}
+		}
+	}
+
+
+
+
+}

--
Gitblit v1.9.1