Allow periods in usernames since the install also allows it

The user creation during the setup allows for a username to contain periods (.) just as adduser --force-badname would do. This is helpful if your naming standard uses periods in usernames. However, such a user cannot be edited anymore, as soon as a change is made on it, it will trigger the error "The username may only contain alphabetic characters (a-z, A-Z), digits (0-9) and underscores (_).". Updated REGEX to allow this (TODO update error messages)
pull/559/head
Joris Le Blansch 2018-03-10 13:50:19 +01:00 committed by GitHub
parent 934879c81b
commit 120a3d2082
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 27 deletions

View File

@ -21,7 +21,7 @@
* @author Pepijn Over <pep@mailbox.org> * @author Pepijn Over <pep@mailbox.org>
* @copyright Copyright (c) 2008-2017 Pepijn Over <pep@mailbox.org> * @copyright Copyright (c) 2008-2017 Pepijn Over <pep@mailbox.org>
* @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3 * @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3
* @version Release: @package_version@ * @version Release: v3.2.0
* @link http://www.phpservermonitor.org/ * @link http://www.phpservermonitor.org/
* @since phpservermon 3.0.0 * @since phpservermon 3.0.0
**/ **/
@ -67,7 +67,7 @@ class UserValidator {
* Check username on: * Check username on:
* *
* - Length (2-64 chars) * - Length (2-64 chars)
* - Contents (alphabetic chars and digits only) * - Contents (alphabetic chars and digits only as well as periods "." as in "adduser --force-badname")
* - Unique * - Unique
* @param string $username * @param string $username
* @param int $user_id to check whether the username is unique * @param int $user_id to check whether the username is unique
@ -78,7 +78,7 @@ class UserValidator {
if(strlen($username) > 64 || strlen($username) < 2) { if(strlen($username) > 64 || strlen($username) < 2) {
throw new \InvalidArgumentException('user_name_bad_length'); 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_\d.]{2,64}$/i', $username)) {
throw new \InvalidArgumentException('user_name_invalid'); throw new \InvalidArgumentException('user_name_invalid');
} }
$user_exists = $this->user->getUserByUsername($username); $user_exists = $this->user->getUserByUsername($username);
@ -106,25 +106,6 @@ class UserValidator {
return true; return true;
} }
/**
* 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 * Check email
* @param string $email * @param string $email