From 71c74b1b572f3bdf00ba99009cc23f8f48072a1c Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Sat, 08 Mar 2014 11:58:49 -0500
Subject: [PATCH] Fixed: FS#3372 - Web browser password autofill function overwrites settings

---
 interface/lib/classes/validate_client.inc.php |   81 +++++++++++++++++++++++++++++-----------
 1 files changed, 59 insertions(+), 22 deletions(-)

diff --git a/interface/lib/classes/validate_client.inc.php b/interface/lib/classes/validate_client.inc.php
index 1124d72..c6f2dcb 100644
--- a/interface/lib/classes/validate_client.inc.php
+++ b/interface/lib/classes/validate_client.inc.php
@@ -29,37 +29,74 @@
 */
 
 class validate_client {
-	
+
 	/*
 		Validator function to check if a username is unique.
 	*/
 	function username_unique($field_name, $field_value, $validator) {
 		global $app;
-		
-		if($app->tform->primary_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 != ".$app->tform->primary_id);
+
+		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";
+				$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";
 				}
 			}
 		}
 	}
-	
-	
-	
-	
-}
\ No newline at end of file
+
+	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'] == '' ) &&
+			$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";
+			} else {
+				return $errmsg."<br>\r\n";
+			}
+		}
+
+
+
+
+	}
+
+
+
+
+}

--
Gitblit v1.9.1