diff --git a/admin_customers.php b/admin_customers.php index c5d6ef53..6241c6ff 100644 --- a/admin_customers.php +++ b/admin_customers.php @@ -628,7 +628,7 @@ if ($page == 'customers' && $_POST['new_loginname'] != '' ) { $accountnumber = intval($settings['system']['lastaccountnumber']); - $loginname = validate($_POST['new_loginname'], 'loginname', '/^[a-z0-9\-_]+$/i'); + $loginname = validate($_POST['new_loginname'], 'loginname', '/^[a-z][a-z0-9\-_]+$/i'); // Accounts which match systemaccounts are not allowed, filtering them if (preg_match('/^' . preg_quote($settings['customer']['accountprefix'], '/') . '([0-9]+)/', $loginname)) { @@ -665,7 +665,7 @@ if ($page == 'customers' standard_error('loginnameexists', $loginname); } elseif (!validateUsername($loginname, $settings['panel']['unix_names'], 14 - strlen($settings['customer']['mysqlprefix']))) { - standard_error('loginnameiswrong', $loginname); + standard_error('loginnameiswrong', 14 - strlen($settings['customer']['mysqlprefix'])); } $guid = intval($settings['system']['lastguid']) + 1; diff --git a/lib/functions/validate/function.validateUsername.php b/lib/functions/validate/function.validateUsername.php index 77afaccb..7cd8d976 100644 --- a/lib/functions/validate/function.validateUsername.php +++ b/lib/functions/validate/function.validateUsername.php @@ -24,24 +24,17 @@ * @return bool Correct or not * @author Michael Duergner * - * @changes Backported regex from SysCP 1.3 (lib/classes/Syscp/Handler/Validation.class.php) */ -function validateUsername($username, $unix_names = 1, $mysql_max = '') -{ - if($unix_names == 0) - { - if(strpos($username, '--') === false) - { +function validateUsername($username, $unix_names = 1, $mysql_max = '') { + + if ($unix_names == 0) { + if (strpos($username, '--') === false) { return (preg_match('/^[a-z][a-z0-9\-_]{1,' . (int)($mysql_max - 1) . '}[a-z0-9]{1}$/Di', $username) != false); - } - else - { + } else { return false; } - } - else - { - return (preg_match('/^[a-z][a-z0-9]{1,' . $mysql_max . '}$/Di', $username) != false); + } else { + return (preg_match('/^[a-z][a-z0-9]{1,' . (int)$mysql_max . '}$/Di', $username) != false); } } diff --git a/lng/english.lng.php b/lng/english.lng.php index c26d4987..2b44f575 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -204,7 +204,7 @@ $lng['error']['mydomain'] = '\'Domain\''; $lng['error']['mydocumentroot'] = '\'Documentroot\''; $lng['error']['loginnameexists'] = 'Loginname %s already exists'; $lng['error']['emailiswrong'] = 'Email-address %s contains invalid characters or is incomplete'; -$lng['error']['loginnameiswrong'] = 'Loginname %s contains invalid characters'; +$lng['error']['loginnameiswrong'] = 'Loginname contains too many characters. Only %s characters are allowed.'; $lng['error']['userpathcombinationdupe'] = 'Combination of username and path already exists'; $lng['error']['patherror'] = 'General Error! Path cannot be empty'; $lng['error']['errordocpathdupe'] = 'Option for path %s already exists'; diff --git a/lng/german.lng.php b/lng/german.lng.php index a4abd03e..fce8d79f 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -204,7 +204,7 @@ $lng['error']['mydomain'] = '\'Domain\''; $lng['error']['mydocumentroot'] = '\'Documentroot\''; $lng['error']['loginnameexists'] = 'Der Login-Name "%s" existiert bereits.'; $lng['error']['emailiswrong'] = 'Die E-Mail-Adresse "%s" enthält ungültige Zeichen oder ist nicht vollständig.'; -$lng['error']['loginnameiswrong'] = 'Der Login-Name "%s" enthält ungültige Zeichen.'; +$lng['error']['loginnameiswrong'] = 'Der Login-Name enthält zuviele Zeichen, maximal %s Zeichen sind erlaubt.'; $lng['error']['userpathcombinationdupe'] = 'Kombination aus Benutzername und Pfad existiert bereits.'; $lng['error']['patherror'] = 'Allgemeiner Fehler! Pfad darf nicht leer sein.'; $lng['error']['errordocpathdupe'] = 'Option für Pfad "%s" existiert bereits.';