spaces are allowed in userids

Signed-off-by: Simon L <szaimen@e.mail.de>
pull/36067/head
Simon L 2022-11-23 14:42:23 +07:00
parent 10cca65ba6
commit 7271ec7acf
3 changed files with 12 additions and 15 deletions

@ -1369,11 +1369,8 @@ class Access extends LDAPUtility {
// Remove unknown leftover entities
$name = preg_replace('#&[^;]+;#', '', $name);
// Replacements
$name = str_replace(' ', '_', $name);
// Every remaining disallowed characters will be removed
$name = preg_replace('/[^a-zA-Z0-9_.@-]/u', '', $name);
$name = preg_replace('/[^a-zA-Z0-9 _.@-]/u', '', $name);
if (strlen($name) > 64) {
$name = hash('sha256', $name, false);

@ -714,10 +714,10 @@ class Manager extends PublicEmitter implements IUserManager {
$l = Server::get(IFactory::class)->get('lib');
// Check the name for bad characters
// Allowed are: "a-z", "A-Z", "0-9" and "_.@-'"
// Allowed are: "a-z", "A-Z", "0-9", spaces and "_.@-'"
if (preg_match('/[^a-zA-Z0-9 _.@\-\']/', $uid)) {
throw new \InvalidArgumentException($l->t('Only the following characters are allowed in a username:'
. ' "a-z", "A-Z", "0-9", and "_.@-\'"'));
. ' "a-z", "A-Z", "0-9", spaces and "_.@-\'"'));
}
// No empty username

@ -309,23 +309,23 @@ class ManagerTest extends TestCase {
public function dataCreateUserInvalid() {
return [
['te?st', 'foo', 'Only the following characters are allowed in a username:'
. ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
. ' "a-z", "A-Z", "0-9", spaces and "_.@-\'"'],
["te\tst", '', 'Only the following characters are allowed in a username:'
. ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
. ' "a-z", "A-Z", "0-9", spaces and "_.@-\'"'],
["te\nst", '', 'Only the following characters are allowed in a username:'
. ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
. ' "a-z", "A-Z", "0-9", spaces and "_.@-\'"'],
["te\rst", '', 'Only the following characters are allowed in a username:'
. ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
. ' "a-z", "A-Z", "0-9", spaces and "_.@-\'"'],
["te\0st", '', 'Only the following characters are allowed in a username:'
. ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
. ' "a-z", "A-Z", "0-9", spaces and "_.@-\'"'],
["te\x0Bst", '', 'Only the following characters are allowed in a username:'
. ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
. ' "a-z", "A-Z", "0-9", spaces and "_.@-\'"'],
["te\xe2st", '', 'Only the following characters are allowed in a username:'
. ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
. ' "a-z", "A-Z", "0-9", spaces and "_.@-\'"'],
["te\x80st", '', 'Only the following characters are allowed in a username:'
. ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
. ' "a-z", "A-Z", "0-9", spaces and "_.@-\'"'],
["te\x8bst", '', 'Only the following characters are allowed in a username:'
. ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
. ' "a-z", "A-Z", "0-9", spaces and "_.@-\'"'],
['', 'foo', 'A valid username must be provided'],
[' ', 'foo', 'A valid username must be provided'],
[' test', 'foo', 'Username contains whitespace at the beginning or at the end'],