Browse Source

spaces are allowed in userids

Signed-off-by: Simon L <szaimen@e.mail.de>
tags/v26.0.0beta1
Simon L 1 year ago
parent
commit
7271ec7acf
3 changed files with 12 additions and 15 deletions
  1. 1
    4
      apps/user_ldap/lib/Access.php
  2. 2
    2
      lib/private/User/Manager.php
  3. 9
    9
      tests/lib/User/ManagerTest.php

+ 1
- 4
apps/user_ldap/lib/Access.php View File

@@ -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);

+ 2
- 2
lib/private/User/Manager.php View File

@@ -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

+ 9
- 9
tests/lib/User/ManagerTest.php View File

@@ -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'],

Loading…
Cancel
Save