From 18de9be0e26c4d66850fe618f4b2e30ee2ff57c6 Mon Sep 17 00:00:00 2001 From: Git'Fellow <12234510+solracsf@users.noreply.github.com> Date: Fri, 14 Mar 2025 16:08:02 +0100 Subject: [PATCH] fix(database): Cast users count to integer Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com> --- lib/private/User/Database.php | 7 +++++-- tests/lib/User/DatabaseTest.php | 13 +++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php index 4252f57ba36..31488247939 100644 --- a/lib/private/User/Database.php +++ b/lib/private/User/Database.php @@ -487,9 +487,12 @@ class Database extends ABackend implements $query = $dbConn->getQueryBuilder(); $query->select($query->func()->count('uid')) ->from($this->table); - $result = $query->executeQuery(); + $result = $query->executeQuery()->fetchOne(); + if ($result === false) { + return false; + } - return $result->fetchOne(); + return (int)$result; } /** diff --git a/tests/lib/User/DatabaseTest.php b/tests/lib/User/DatabaseTest.php index bd74ab333fb..900f0ddd3fa 100644 --- a/tests/lib/User/DatabaseTest.php +++ b/tests/lib/User/DatabaseTest.php @@ -25,6 +25,9 @@ class DatabaseTest extends Backend { /** @var IEventDispatcher|MockObject */ private $eventDispatcher; + /** @var \OC\User\Database */ + protected $backend; + public function getUser() { $user = parent::getUser(); $this->users[] = $user; @@ -139,4 +142,14 @@ class DatabaseTest extends Backend { $result = $this->backend->getDisplayNames('@nextcloud.COM'); $this->assertCount(2, $result); } + + public function testUserCount(): void { + $base = $this->backend->countUsers() ?: 0; + $users = $this->backend->getUsers(); + self::assertEquals($base, count($users)); + + $user = $this->getUser(); + $this->backend->createUser($user, $user); + self::assertEquals($base + 1, $this->backend->countUsers()); + } }