Username validation fix (#512)

* Validation and (.) support

Added validation for the username during installation.
Added dot (.) to the list of allowed symbols for username.
Added ‘dots (.)’ to the error_user_name_invalid error message.
This commit is contained in:
Tim 2018-02-24 01:14:53 +01:00 committed by Timz99
parent 8bb5d1ffab
commit 57340aae80
No known key found for this signature in database
GPG Key ID: 4D8268DC68E8339D
24 changed files with 49 additions and 29 deletions

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Профил',
'profile_updated' => 'Профилът е обновен успешно',
'error_user_name_bad_length' => 'Потребителското име трябва да съдържа между 2 и 64 символа',
'error_user_name_invalid' => 'Може да съдържа само латински букви (a-z, A-Z), цифри (0-9) и долна черта (_).',
'error_user_name_invalid' => 'Може да съдържа само латински букви (a-z, A-Z), цифри (0-9), точка (.) и долна черта (_).',
'error_user_name_exists' => 'Вече съществува акаунт с това потребителско име.',
'error_user_email_bad_length' => 'Имейл адреса трябва да съдържа между 5 и 255 символа.',
'error_user_email_invalid' => 'Въведения имейл адрес е грешен.',

View File

@ -97,7 +97,7 @@ $sm_lang = array(
'profile' => 'Profil',
'profile_updated' => 'Váš uživatelský profil byl upraven.',
'error_user_name_bad_length' => 'Uživatelské jméno musí obsahovat 2 až 64 znaků.',
'error_user_name_invalid' => 'Uživatelské jméno může obsahovat pouze písmena (a-z, A-Z), čísla (0-9) a podtržítka (_).',
'error_user_name_invalid' => 'Uživatelské jméno může obsahovat pouze písmena (a-z, A-Z), čísla (0-9), tečky (.) a podtržítka (_).',
'error_user_name_exists' => 'Zadané uživatelské jméno již existuje v databázi.',
'error_user_email_bad_length' => 'E-mailová adresa musí obsahovat 5 až 255 znaků .',
'error_user_email_invalid' => 'E-mailová adresa je neplatná',

View File

@ -94,7 +94,7 @@ $sm_lang = array(
'profile' => 'Profil',
'profile_updated' => 'Din profil er opdateret.',
'error_user_name_bad_length' => 'Brugernavn skal være mellem 2 til 64 tegn.',
'error_user_name_invalid' => 'Brugernavn må kun indholde alfabetiske tegn (a-z, A-Z), tal (0-9) og (_).',
'error_user_name_invalid' => 'Brugernavn må kun indholde alfabetiske tegn (a-z, A-Z), tal (0-9), prikker (.) og (_).',
'error_user_name_exists' => 'Det valgte brugernavn findes allerede.',
'error_user_email_bad_length' => 'E-mail addresser skal være mellem 5 til 255 tegn.',
'error_user_email_invalid' => 'Den valgte e-mail er ugyldig.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Profileinstellungen',
'profile_updated' => 'Ihr Profil wurde aktualisiert.',
'error_user_name_bad_length' => 'Benutzernamen müssen zwischen 2 und 64 Zeichen lang sein.',
'error_user_name_invalid' => 'Der Benutzername darf nur alphanumerische Zeichen (a-z, A-Z), Zahlen (0-9) und Unterstriche (_) enthalten.',
'error_user_name_invalid' => 'Der Benutzername darf nur alphanumerische Zeichen (a-z, A-Z), Zahlen (0-9), Punkte (.) und Unterstriche (_) enthalten.',
'error_user_name_exists' => 'Der gewählte Benutzername existiert bereits in der Datenbank.',
'error_user_email_bad_length' => 'E-Mail-Adressen müssen zwischen 5 und 255 Zeichen lang sein.',
'error_user_email_invalid' => 'Die E-Mail-Adresse ist ungültig.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Profile',
'profile_updated' => 'Your profile has been updated.',
'error_user_name_bad_length' => 'Usernames must be between 2 and 64 characters.',
'error_user_name_invalid' => 'The username may only contain alphabetic characters (a-z, A-Z), digits (0-9) and underscores (_).',
'error_user_name_invalid' => 'The username may only contain alphabetic characters (a-z, A-Z), digits (0-9), dots (.) and underscores (_).',
'error_user_name_exists' => 'The given username already exists in the database.',
'error_user_email_bad_length' => 'Email addresses must be between 5 and 255 characters.',
'error_user_email_invalid' => 'The email address is invalid.',

View File

@ -98,7 +98,7 @@ $sm_lang = array(
'profile' => 'Perfil',
'profile_updated' => 'Su perfil ha sido actualizado.',
'error_user_name_bad_length' => 'Los nombres de usuario deben tener entre 2 y 64 caracteres.',
'error_user_name_invalid' => 'El nombre de usuario sólo puede contener caracteres alfabéticos (az, AZ), números (0-9) y guiones bajos (_).',
'error_user_name_invalid' => 'El nombre de usuario sólo puede contener caracteres alfabéticos (a-z, A-Z), números (0-9), puntos (.) y guiones bajos (_).',
'error_user_name_exists' => 'El nombre de usuario dado ya existe en la base de datos.',
'error_user_email_bad_length' => 'Direcciones de correo electrónico deben estar entre 5 y 255 caracteres.',
'error_user_email_invalid' => 'La dirección de correo electrónico no es válida.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Profiil',
'profile_updated' => 'Sinu profiil on uuendatud.',
'error_user_name_bad_length' => 'Kasutajanimi peab olema 2 kuni 64 tähemärki pikk.',
'error_user_name_invalid' => 'Kasutajanimi võib koosneda ainult tähenumbrilistest kombinatsioonidest (a-z, A-Z), numbritest (0-9) ja alakriipsust (_).',
'error_user_name_invalid' => 'Kasutajanimi võib koosneda ainult tähenumbrilistest kombinatsioonidest (a-z, A-Z), numbritest (0-9), punktid (.) ja alakriipsust (_).',
'error_user_name_exists' => 'Antud kasutaja juba eksisteerib andmebaasis.',
'error_user_email_bad_length' => 'Email võib olla 5 kuni 255 tähemärki pikk.',
'error_user_email_invalid' => 'Emaili aadress on kehtetu.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'پروفایل',
'profile_updated' => 'پروفایل شما بروزرسانی شد.',
'error_user_name_bad_length' => 'نام های کاربری باید بین 2 و 64 کاراکتر باشد.',
'error_user_name_invalid' => 'نام کاربری باید فقط شامل حروف (a-z, A-Z)، اعداد (0-9) و علامت (_) باشد.',
'error_user_name_invalid' => 'نام کاربری باید فقط شامل حروف (a-z, A-Z)، نقطه (.) اعداد (0-9) و علامت (_) باشد.',
'error_user_name_exists' => 'نام کاربری وارد شده در حال حاضر در پایگاه داده موجود است.',
'error_user_email_bad_length' => 'آدرس های ایمیل باید بین 5 و 255 کاراکتر باشد.',
'error_user_email_invalid' => 'آدرس ایمیل نامعتبر است.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Profiili',
'profile_updated' => 'Profiilisi on päivitetty.',
'error_user_name_bad_length' => 'Käyttäjänimi saa olla 2-64 merkkiä pitkä.',
'error_user_name_invalid' => 'Käyttäjänimessä saa olla vain kirjaimia (a-z, A-Z), numeroita (0-9) ja alaviivoja (_).',
'error_user_name_invalid' => 'Käyttäjänimessä saa olla vain kirjaimia (a-z, A-Z), numeroita (0-9), pisteitä (.) ja alaviivoja (_).',
'error_user_name_exists' => 'Annettu käyttäjänimi on jo tietokannassa.',
'error_user_email_bad_length' => 'Sähköpostiosoitteen täytyy olla 5-255 merkkiä pitkä.',
'error_user_email_invalid' => 'Annettu sähköposti ei kelpaa.',

View File

@ -97,7 +97,7 @@ $sm_lang = array(
'profile' => 'Profil',
'profile_updated' => 'Votre profil a été mis à jour.',
'error_user_name_bad_length' => 'Le nom d\'utilisateur doit avoir entre 2 et 64 caractères.',
'error_user_name_invalid' => 'Le nom d\'utilisateur ne peut contenir que des caractères alphabétiques (a-z, A-Z), des chiffres (0-9) ou underscore (_).',
'error_user_name_invalid' => 'Le nom d\'utilisateur ne peut contenir que des caractères alphabétiques (a-z, A-Z), des chiffres (0-9), points (.) ou underscore (_).',
'error_user_name_exists' => 'Ce nom d\'utilisateur existe déjà.',
'error_user_email_bad_length' => 'L\'adresse email doit avoir entre 5 et 255 caractères.',
'error_user_email_invalid' => 'L\'adresse email n\'est pas valide.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'プロフィール',
'profile_updated' => 'あなたのプロフィールは更新されました。',
'error_user_name_bad_length' => 'ユーザーネームは264文字以内で入力してください。',
'error_user_name_invalid' => 'ユーザー名は、アルファベット、数字とアンダーバーのみを含むことができます。',
'error_user_name_invalid' => 'ユーザー名は、アルファベット、数字とアンダーバーのみを含むことができます ドット(。)。',
'error_user_name_exists' => '登録しようとしたユーザー名は既にデータベースに登録されています。',
'error_user_email_bad_length' => 'メールアドレスは5255文字以内で入力してください。',
'error_user_email_invalid' => 'メールアドレスが無効です。',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Profile',
'profile_updated' => 'Your profile has been updated.',
'error_user_name_bad_length' => 'Usernames must be between 2 and 64 characters.',
'error_user_name_invalid' => 'It may only contain alphabetic characters (a-z, A-Z), digits (0-9) and underscores (_).',
'error_user_name_invalid' => 'It may only contain alphabetic characters (a-z, A-Z), digits (0-9), dots (.) and underscores (_).',
'error_user_name_exists' => 'The given username already exists in the database.',
'error_user_email_bad_length' => 'Email addresses must be between 5 and 255 characters.',
'error_user_email_invalid' => 'The email address is invalid.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Profiel',
'profile_updated' => 'Je profiel is bijgewerkt.',
'error_user_name_bad_length' => 'Een gebruikersnaam moet tussen de 2 en 64 tekens zijn.',
'error_user_name_invalid' => 'Een gebruikersnaam mag alleen alfabetische tekens (a-z, A-Z), cijfers (0-9) en underscores (_) bevatten.',
'error_user_name_invalid' => 'Een gebruikersnaam mag alleen alfabetische tekens (a-z, A-Z), cijfers (0-9), punten (.) en underscores (_) bevatten.',
'error_user_name_exists' => 'De opgegeven gebruikersnaam bestaat al.',
'error_user_email_bad_length' => 'Een email adres moet tussen de 5 en 255 tekens zijn.',
'error_user_email_invalid' => 'Het email adres is ongeldig.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Profil',
'profile_updated' => 'Twój profil został zaktualizowany.',
'error_user_name_bad_length' => 'Login musi mieć od 2 do 64 znaków.',
'error_user_name_invalid' => 'Login może zawierać tylko litery (a-z, A-Z), cyfry (0-9) oraz znak podkreślenia (_).',
'error_user_name_invalid' => 'Login może zawierać tylko litery (a-z, A-Z), cyfry (0-9), kropki (.) oraz znak podkreślenia (_).',
'error_user_name_exists' => 'Wybrana nazwa użytkownika jest już używana.',
'error_user_email_bad_length' => 'Email powinien mieć od 5 do 255 znaków.',
'error_user_email_invalid' => 'Wprowadzony adres email jest nieprawidłowy.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Perfil',
'profile_updated' => 'Seu perfil foi atualizado.',
'error_user_name_bad_length' => 'Usernames deve conter entre 2 e 64 caracteres.',
'error_user_name_invalid' => 'Só pode conter caracteres alfabéticos (a-z, A-Z), dígitos (0-9) e underscores (_).',
'error_user_name_invalid' => 'Só pode conter caracteres alfabéticos (a-z, A-Z), dígitos (0-9), pontos (.) e underscores (_).',
'error_user_name_exists' => 'O nome de usuário(username) já existe no banco de dados',
'error_user_email_bad_length' => 'Email deve conter entre 5 e 255 caracteres.',
'error_user_email_invalid' => 'O endereço de email é inválido.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Профиль',
'profile_updated' => 'Ваш профиль был обновлен.',
'error_user_name_bad_length' => 'Логин должен содержать от 2 до 64 знаков.',
'error_user_name_invalid' => 'Имя пользователя может содержать только латинские символы (a-z, A-Z), цифры (0-9) и подчеркивание (_).',
'error_user_name_invalid' => 'Имя пользователя может содержать только латинские символы (a-z, A-Z), цифры (0-9), точки (.) и подчеркивание (_).',
'error_user_name_exists' => 'Данный логин уже существует.',
'error_user_email_bad_length' => 'E-mail может содержать от 5 до 255 знаков.',
'error_user_email_invalid' => 'E-mail указан неверно.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Profil',
'profile_updated' => 'Váš užívateľský profil bol upravený.',
'error_user_name_bad_length' => 'Užívateľské meno musí obsahovať 2 až 64 znakov.',
'error_user_name_invalid' => 'Užívateľské meno môže obsahovať iba písmena (a-z, A-Z), čísla (0-9) a podtržítka (_).',
'error_user_name_invalid' => 'Užívateľské meno môže obsahovať iba písmena (a-z, A-Z), čísla (0-9), bodky (.) a podtržítka (_).',
'error_user_name_exists' => 'Zadané uživatelské jméno již existuje v databázi.',
'error_user_email_bad_length' => 'E-mailová adresa musí obsahovat 5 až 255 znaků .',
'error_user_email_invalid' => 'E-mailová adresa je neplatná',

View File

@ -94,7 +94,7 @@ $sm_lang = array(
'profile' => 'Profil',
'profile_updated' => 'Vaš profil je bil posodobljen.',
'error_user_name_bad_length' => 'Uporabniško ime mora biti dolgo med 2 in 64 znakov.',
'error_user_name_invalid' => 'Uporabniško ime lahko vsebuje samo črke (a-z, A-Z), številke (0-9) in podčrtaje (_).',
'error_user_name_invalid' => 'Uporabniško ime lahko vsebuje samo črke (a-z, A-Z), številke (0-9), pike (.) in podčrtaje (_).',
'error_user_name_exists' => 'Uporabniško ime v bazi podatkov že obstaja.',
'error_user_email_bad_length' => 'E-naslov mora biti med 5 in 255 znaki.',
'error_user_email_invalid' => 'E-naslov ni veljaven.',
@ -296,4 +296,4 @@ $sm_lang = array(
'401_unauthorized' => 'Nepooblaščen dostop',
'401_unauthorized_description' => 'Nimate dovoljenja za ogled te strani.',
),
);
);

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Profil',
'profile_updated' => 'Din profil har uppdaterats.',
'error_user_name_bad_length' => 'Användarnamn måste vara mellan 2 och 64 tecken.',
'error_user_name_invalid' => 'Användarnamnet får bara innehålla bokstäver (a-z, A-Z), siffror (0-9) and understreck (_).',
'error_user_name_invalid' => 'Användarnamnet får bara innehålla bokstäver (a-z, A-Z), siffror (0-9), prickar (.) and understreck (_).',
'error_user_name_exists' => 'Användarnamnet används redan.',
'error_user_email_bad_length' => 'Email-adressen måste vara mellan 5 och 255 tecken.',
'error_user_email_invalid' => 'Email-adressen är ogiltig.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => 'Profil',
'profile_updated' => 'Profiliniz güncellendi.',
'error_user_name_bad_length' => 'Kullanıcı adları en az 2 ve en fazla 64 karakter uzunluğunda olmalıdır.',
'error_user_name_invalid' => 'Kullanıcı adları sadece harf (a-z, A-Z), sayı (0-9) and alttan çizgi (_) karakterlerini içerebilir.',
'error_user_name_invalid' => 'Kullanıcı adları sadece harf (a-z, A-Z), sayı (0-9), noktalar (.) and alttan çizgi (_) karakterlerini içerebilir.',
'error_user_name_exists' => 'Bu kullanıcı adı daha önce alınmış.',
'error_user_email_bad_length' => 'E-posta adresi en az 5 ve en fazla 255 karakter uzunluğunda olmalıdır.',
'error_user_email_invalid' => 'Geçersiz e-posta adresi.',

View File

@ -94,7 +94,7 @@ $sm_lang = array(
'profile' => 'Hồ sơ',
'profile_updated' => 'Hồ sơ của bạn đã được cập nhật.',
'error_user_name_bad_length' => 'Tên người dùng phải có từ 2 và 64 ký tự.',
'error_user_name_invalid' => 'Tên người dùng chỉ có thể chứa các chữ cái(a-z, A-Z), số (0-9) và dấu gạch dưới (_).',
'error_user_name_invalid' => 'Tên người dùng chỉ có thể chứa các chữ cái(a-z, A-Z), số (0-9), dấu chấm (.) và dấu gạch dưới (_).',
'error_user_name_exists' => 'Tên người dùng đã tồn tại trong cơ sở dữ liệu.',
'error_user_email_bad_length' => 'Địa chỉ email phải từ 5 đến 255 ký tự.',
'error_user_email_invalid' => 'Địa chỉ email không hợp lệ.',

View File

@ -96,7 +96,7 @@ $sm_lang = array(
'profile' => '个人资料',
'profile_updated' => '个人资料已更新.',
'error_user_name_bad_length' => '用户名长度必须为2-64个字符.',
'error_user_name_invalid' => '用户名只允许使用字母 (a-z, A-Z), 数字 (0-9) 及下划线 (_).',
'error_user_name_invalid' => '用户名只允许使用字母 (a-z, A-Z), 数字 (0-9), 點(。) 及下划线 (_).',
'error_user_name_exists' => '该用户名已存在.',
'error_user_email_bad_length' => '电子邮箱长度必须为5-255个字符.',
'error_user_email_invalid' => '无效的邮箱地址.',

View File

@ -244,6 +244,7 @@ class InstallController extends AbstractController {
} else {
// validate the lot
try {
$validator->username_new($new_user['user_name']);
$validator->email($new_user['email']);
$validator->password($new_user['password'], $new_user['password_repeat']);
} catch(\InvalidArgumentException $e) {

View File

@ -78,7 +78,7 @@ class UserValidator {
if(strlen($username) > 64 || strlen($username) < 2) {
throw new \InvalidArgumentException('user_name_bad_length');
}
if (!preg_match('/^[a-zA-Z\d_]{2,64}$/i', $username)) {
if (!preg_match('/^[a-zA-Z\d_\.]{2,64}$/i', $username)) {
throw new \InvalidArgumentException('user_name_invalid');
}
$user_exists = $this->user->getUserByUsername($username);
@ -107,11 +107,30 @@ class UserValidator {
}
/**
* Check email
* @param string $email
* @return boolean
* @throws \InvalidArgumentException
*/
* Install only; Check username on:
*
* - Length (2-64 chars)
* - Contents (alphabetic chars and digits only)
* @param string $username
* @return boolean
* @throws \InvalidArgumentException
*/
public function username_new($username) {
if(strlen($username) > 64 || strlen($username) < 2) {
throw new \InvalidArgumentException('user_name_bad_length');
}
if (!preg_match('/^[a-zA-Z\d_\.]{2,64}$/i', $username)) {
throw new \InvalidArgumentException('user_name_invalid');
}
return true;
}
/**
* Check email
* @param string $email
* @return boolean
* @throws \InvalidArgumentException
*/
public function email($email) {
if(strlen($email) > 255 || strlen($email) < 5) {
throw new \InvalidArgumentException('user_email_bad_length');