From 33b1f94533fe9fe31dcc5cd5533de1e9339661d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Mon, 28 May 2018 15:13:39 +0200 Subject: [PATCH] Check proper case for user UID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- lib/private/User/Database.php | 6 ++++++ tests/lib/User/DatabaseTest.php | 7 +++++++ 2 files changed, 13 insertions(+) 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();