diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php index b2c54cd7c7e13..e4aa684099a65 100644 --- a/lib/private/User/Database.php +++ b/lib/private/User/Database.php @@ -334,6 +334,12 @@ private function loadUser($uid) { $result = $qb->execute(); $row = $result->fetch(); $result->closeCursor(); + + // check proper uid case + if((string)$row['uid'] !== $uid) { + $this->cache[$uid] = false; + return false; + } $this->cache[$uid] = false; diff --git a/tests/lib/User/DatabaseTest.php b/tests/lib/User/DatabaseTest.php index a6fb8047a98a2..0cd58a170fd02 100644 --- a/tests/lib/User/DatabaseTest.php +++ b/tests/lib/User/DatabaseTest.php @@ -115,6 +115,13 @@ public function testDeleteUserInvalidatesCache() { $this->assertTrue($this->backend->userExists($user1)); } + public function testGetUserProperCaseUID() { + $user1 = $this->getUniqueID('Test_'); + $this->backend->createUser($user1, 'pw'); + $this->assertTrue($this->backend->userExists($user1)); + $this->assertFalse($this->backend->userExists(strtolower($user1))); + } + public function testSearch() { parent::testSearch();