From 61f73820621d4ea17ecde3c8d6872e6ce8f9eb12 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 28 Oct 2014 04:35:30 -0400 Subject: [PATCH] - Changed tform_actions.inc.php to always provide oldDataRecord array for updates even when dbhistory = off. --- 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