]> source.dussan.org Git - nextcloud-server.git/commitdiff
spaces are allowed in userids
authorSimon L <szaimen@e.mail.de>
Wed, 23 Nov 2022 13:42:23 +0000 (14:42 +0100)
committerSimon L <szaimen@e.mail.de>
Tue, 10 Jan 2023 12:25:27 +0000 (13:25 +0100)
Signed-off-by: Simon L <szaimen@e.mail.de>
apps/user_ldap/lib/Access.php
lib/private/User/Manager.php
tests/lib/User/ManagerTest.php

index 1cc0c62ff1d177353c542c7184173a5eed496887..45ab3c423993ec8213fb123df02d570aa6cae231 100644 (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);
index 82fc4d818ad96edd5133b4a2b93e09ebf18ab8a1..937d825ed777d2c99ecc2a9d1dba8f16b1c03924 100644 (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
index ec8d931426c883e3c7843a54053846827dc560b8..19013c62be7aa37b97ee8fde307c1d3b470be940 100644 (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'],