diff --git a/interface/lib/classes/validate_client.inc.php b/interface/lib/classes/validate_client.inc.php
index 97b9221822caacb2f07b90aa93052aa3d8c309ec..fa0f102931e14f1bcf9b868a5b64929075ebeff1 100644
--- a/interface/lib/classes/validate_client.inc.php
+++ b/interface/lib/classes/validate_client.inc.php
@@ -65,6 +65,36 @@ class validate_client {
}
}
+ 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(substr($field_value,0,3) == 'web' &&
+ ($global_config['ftpuser_prefix'] == '[CLIENTNAME]' ||
+ $global_config['ftpuser_prefix'] == '' ||
+ $global_config['shelluser_prefix'] == '[CLIENTNAME]' ||
+ $global_config['shelluser_prefix'] == '' )) {
+ $errmsg = $validator['errmsg'];
+ if(isset($app->tform->wordbook[$errmsg])) {
+ return $app->tform->wordbook[$errmsg]."
\r\n";
+ } else {
+ return $errmsg."
\r\n";
+ }
+ }
+
+
+
+
+ }
+
diff --git a/interface/web/client/client_edit.php b/interface/web/client/client_edit.php
index e3330e5888c891ed3c2a3366c0fb94515506ac32..fc16d4c28d4896fe426059e8074ec469d1de0952 100644
--- a/interface/web/client/client_edit.php
+++ b/interface/web/client/client_edit.php
@@ -1,6 +1,6 @@
'validate_client',
'function' => 'username_unique',
'errmsg'=> 'username_error_unique'),
- 2 => array ( 'type' => 'REGEX',
+ 2 => array ( 'type' => 'CUSTOM',
+ 'class' => 'validate_client',
+ 'function' => 'username_collision',
+ 'errmsg'=> 'username_error_collision'),
+ 3 => array ( 'type' => 'REGEX',
'regex' => '/^[\w\.\-\_]{0,64}$/',
'errmsg'=> 'username_error_regex'),
),
diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php
index 5447070f64e87dfbe2fe4fac4248158fd6e7563f..a3077914f28e04425fe68f48bf4f4273130b00f0 100644
--- a/interface/web/client/form/reseller.tform.php
+++ b/interface/web/client/form/reseller.tform.php
@@ -126,7 +126,11 @@ $form["tabs"]['address'] = array (
'class' => 'validate_client',
'function' => 'username_unique',
'errmsg'=> 'username_error_unique'),
- 2 => array ( 'type' => 'REGEX',
+ 2 => array ( 'type' => 'CUSTOM',
+ 'class' => 'validate_client',
+ 'function' => 'username_collision',
+ 'errmsg'=> 'username_error_collision'),
+ 3 => array ( 'type' => 'REGEX',
'regex' => '/^[\w\.\-\_]{0,64}$/',
'errmsg'=> 'username_error_regex'),
),
diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng
index ce4805ef60f06b0ad835922b2745938478a47031..f2edf1fd7edfcf3a1d51dbb478891c2e7742bdaf 100644
--- a/interface/web/client/lib/lang/en_client.lng
+++ b/interface/web/client/lib/lang/en_client.lng
@@ -109,4 +109,5 @@ $wb["limit_openvz_vm_template_id_txt"] = 'Force virtual server template';
$wb["limit_openvz_vm_error_notint"] = 'The virtual server limit must be a number.';
$wb["web_php_options_notempty"] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb["ssh_chroot_notempty"] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb["username_error_collision"] = 'The username may not start with the word - web -';
?>
diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng
index b93f54ee895fb491b1e44dc5fadf373ecde542f6..9f1e36c88ea250f9e1a70a6cbd702069dad4234f 100644
--- a/interface/web/client/lib/lang/en_reseller.lng
+++ b/interface/web/client/lib/lang/en_reseller.lng
@@ -108,4 +108,5 @@ $wb["limit_openvz_vm_template_id_txt"] = 'Force virtual server template';
$wb["limit_openvz_vm_error_notint"] = 'The virtual server limit must be a number.';
$wb["web_php_options_notempty"] = 'No PHP option(s) selected. Select at least one PHP option.';
$wb["ssh_chroot_notempty"] = 'No SSH chroot option selected. Select at least one SSH option.';
+$wb["username_error_collision"] = 'The username may not start with the word - web -';
?>