From: Arthur Schiwon Date: Mon, 26 Oct 2020 13:00:57 +0000 (+0100) Subject: fixes determining whether former user is a share owner X-Git-Tag: v20.0.2RC1~68^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=37301a5378fb59323fa8d1c49a2a2df619422198;p=nextcloud-server.git fixes determining whether former user is a share owner Signed-off-by: Arthur Schiwon --- diff --git a/apps/user_ldap/lib/User/OfflineUser.php b/apps/user_ldap/lib/User/OfflineUser.php index 77863da6ac9..2f201ca4a46 100644 --- a/apps/user_ldap/lib/User/OfflineUser.php +++ b/apps/user_ldap/lib/User/OfflineUser.php @@ -243,29 +243,22 @@ class OfflineUser { */ protected function determineShares() { $query = $this->db->prepare(' - SELECT COUNT(`uid_owner`) + SELECT `uid_owner` FROM `*PREFIX*share` WHERE `uid_owner` = ? ', 1); $query->execute([$this->ocName]); - $sResult = $query->fetchColumn(0); - if ((int)$sResult === 1) { + if ($query->rowCount() > 0) { $this->hasActiveShares = true; return; } $query = $this->db->prepare(' - SELECT COUNT(`owner`) + SELECT `owner` FROM `*PREFIX*share_external` WHERE `owner` = ? ', 1); $query->execute([$this->ocName]); - $sResult = $query->fetchColumn(0); - if ((int)$sResult === 1) { - $this->hasActiveShares = true; - return; - } - - $this->hasActiveShares = false; + $this->hasActiveShares = $query->rowCount() > 0; } } diff --git a/apps/user_ldap/tests/User/OfflineUserTest.php b/apps/user_ldap/tests/User/OfflineUserTest.php index 8c8835e9682..298e1708a58 100644 --- a/apps/user_ldap/tests/User/OfflineUserTest.php +++ b/apps/user_ldap/tests/User/OfflineUserTest.php @@ -78,10 +78,12 @@ class OfflineUserTest extends TestCase { public function testHasActiveShares(int $internalOwnerships, int $externalOwnerships, bool $expected) { $queryMock = $this->createMock(Statement::class); $queryMock->expects($this->atLeastOnce()) - ->method('fetchColumn') + ->method('execute'); + $queryMock->expects($this->atLeastOnce()) + ->method('rowCount') ->willReturnOnConsecutiveCalls( - (string)$internalOwnerships, - (string)$externalOwnerships + $internalOwnerships > 0 ? 1 : 0, + $externalOwnerships > 0 ? 1 : 0 ); $this->dbc->expects($this->atLeastOnce())