From 4ad89c17613ebb74fbe4f5241f5b7d55b36997b3 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Thu, 18 Mar 2021 17:12:28 +0100 Subject: [PATCH] Update user share must use correct expiration validation Updating a user or group share now uses the correct method for the validation of the expiration date. Instead of using the one from links it uses the one for internal shares. To avoid future confusion, the method "validateExpirationDate" has been renamed to "validateExpirationDateLink". Signed-off-by: Vincent Petry --- lib/private/Share20/Manager.php | 10 ++-- tests/lib/Share20/ManagerTest.php | 80 +++++++++++++++---------------- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 8d0ab9152b465..683ca77c2beda 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -458,7 +458,7 @@ protected function validateExpirationDateInternal(IShare $share) { * @throws \InvalidArgumentException * @throws \Exception */ - protected function validateExpirationDate(IShare $share) { + protected function validateExpirationDateLink(IShare $share) { $expirationDate = $share->getExpirationDate(); if ($expirationDate !== null) { @@ -761,7 +761,7 @@ public function createShare(IShare $share) { ); //Verify the expiration date - $share = $this->validateExpirationDate($share); + $share = $this->validateExpirationDateLink($share); //Verify the password $this->verifyPassword($share->getPassword()); @@ -973,7 +973,7 @@ public function updateShare(IShare $share) { if ($share->getExpirationDate() != $originalShare->getExpirationDate()) { //Verify the expiration date - $this->validateExpirationDate($share); + $this->validateExpirationDateInternal($share); $expirationDateUpdated = true; } } elseif ($share->getShareType() === IShare::TYPE_GROUP) { @@ -981,7 +981,7 @@ public function updateShare(IShare $share) { if ($share->getExpirationDate() != $originalShare->getExpirationDate()) { //Verify the expiration date - $this->validateExpirationDate($share); + $this->validateExpirationDateInternal($share); $expirationDateUpdated = true; } } elseif ($share->getShareType() === IShare::TYPE_LINK) { @@ -997,7 +997,7 @@ public function updateShare(IShare $share) { if ($share->getExpirationDate() != $originalShare->getExpirationDate()) { //Verify the expiration date - $this->validateExpirationDate($share); + $this->validateExpirationDateLink($share); $expirationDateUpdated = true; } } elseif ($share->getShareType() === IShare::TYPE_EMAIL) { diff --git a/tests/lib/Share20/ManagerTest.php b/tests/lib/Share20/ManagerTest.php index 138c3025c866f..e053f4eb2e8a9 100644 --- a/tests/lib/Share20/ManagerTest.php +++ b/tests/lib/Share20/ManagerTest.php @@ -1063,7 +1063,7 @@ public function testValidateExpirationDateInPast() { $share = $this->manager->newShare(); $share->setExpirationDate($past); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); } public function testValidateExpirationDateEnforceButNotSet() { @@ -1079,7 +1079,7 @@ public function testValidateExpirationDateEnforceButNotSet() { ['core', 'shareapi_enforce_expire_date', 'no', 'yes'], ]); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); } public function testValidateExpirationDateEnforceButNotEnabledAndNotSet() { @@ -1091,7 +1091,7 @@ public function testValidateExpirationDateEnforceButNotEnabledAndNotSet() { ['core', 'shareapi_enforce_expire_date', 'no', 'yes'], ]); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); $this->assertNull($share->getExpirationDate()); } @@ -1111,7 +1111,7 @@ public function testValidateExpirationDateEnforceButNotSetNewShare() { $expected->setTime(0,0,0); $expected->add(new \DateInterval('P3D')); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); $this->assertNotNull($share->getExpirationDate()); $this->assertEquals($expected, $share->getExpirationDate()); @@ -1132,7 +1132,7 @@ public function testValidateExpirationDateEnforceRelaxedDefaultButNotSetNewShare $expected->setTime(0,0,0); $expected->add(new \DateInterval('P1D')); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); $this->assertNotNull($share->getExpirationDate()); $this->assertEquals($expected, $share->getExpirationDate()); @@ -1155,7 +1155,7 @@ public function testValidateExpirationDateEnforceTooFarIntoFuture() { ['core', 'shareapi_default_expire_date', 'no', 'yes'], ]); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); } public function testValidateExpirationDateEnforceValid() { @@ -1182,7 +1182,7 @@ public function testValidateExpirationDateEnforceValid() { return $data['expirationDate'] == $future; })); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); $this->assertEquals($expected, $share->getExpirationDate()); } @@ -1204,7 +1204,7 @@ public function testValidateExpirationDateNoDefault() { return $data['expirationDate'] == $expected && $data['passwordSet'] === false; })); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); $this->assertEquals($expected, $share->getExpirationDate()); } @@ -1219,7 +1219,7 @@ public function testValidateExpirationDateNoDateNoDefault() { $share = $this->manager->newShare(); $share->setPassword('password'); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); $this->assertNull($share->getExpirationDate()); } @@ -1244,7 +1244,7 @@ public function testValidateExpirationDateNoDateDefault() { return $data['expirationDate'] == $expected; })); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); $this->assertEquals($expected, $share->getExpirationDate()); } @@ -1273,7 +1273,7 @@ public function testValidateExpirationDateDefault() { return $data['expirationDate'] == $expected; })); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); $this->assertEquals($expected, $share->getExpirationDate()); } @@ -1294,7 +1294,7 @@ public function testValidateExpirationDateHookModification() { $share = $this->manager->newShare(); $share->setExpirationDate($nextWeek); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); $save->sub(new \DateInterval('P2D')); $this->assertEquals($save, $share->getExpirationDate()); @@ -1318,7 +1318,7 @@ public function testValidateExpirationDateHookException() { $data['message'] = 'Invalid date!'; }); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); } public function testValidateExpirationDateExistingShareNoDefault() { @@ -1332,7 +1332,7 @@ public function testValidateExpirationDateExistingShareNoDefault() { ['core', 'shareapi_expire_after_n_days', '7', '6'], ]); - self::invokePrivate($this->manager, 'validateExpirationDate', [$share]); + self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]); $this->assertEquals(null, $share->getExpirationDate()); } @@ -2036,7 +2036,7 @@ public function testCreateShareLink() { 'generalCreateChecks', 'linkCreateChecks', 'pathCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', 'verifyPassword', 'setLinkParent', ]) @@ -2078,7 +2078,7 @@ public function testCreateShareLink() { ->method('pathCreateChecks') ->with($path); $manager->expects($this->once()) - ->method('validateExpirationDate') + ->method('validateExpirationDateLink') ->with($share) ->willReturn($share); $manager->expects($this->once()) @@ -2161,7 +2161,7 @@ public function testCreateShareMail() { 'generalCreateChecks', 'linkCreateChecks', 'pathCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', 'verifyPassword', 'setLinkParent', ]) @@ -2197,7 +2197,7 @@ public function testCreateShareMail() { ->method('pathCreateChecks') ->with($path); $manager->expects($this->never()) - ->method('validateExpirationDate'); + ->method('validateExpirationDateLink'); $manager->expects($this->never()) ->method('verifyPassword'); $manager->expects($this->never()) @@ -3011,7 +3011,7 @@ public function testUpdateShareLink() { 'linkCreateChecks', 'pathCreateChecks', 'verifyPassword', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3040,7 +3040,7 @@ public function testUpdateShareLink() { $manager->expects($this->once())->method('canShare')->willReturn(true); $manager->expects($this->once())->method('getShareById')->with('foo:42')->willReturn($originalShare); - $manager->expects($this->once())->method('validateExpirationDate')->with($share); + $manager->expects($this->once())->method('validateExpirationDateLink')->with($share); $manager->expects($this->once())->method('verifyPassword')->with('password'); $this->hasher->expects($this->once()) @@ -3092,7 +3092,7 @@ public function testUpdateShareLinkEnableSendPasswordByTalkWithNoPassword() { 'linkCreateChecks', 'pathCreateChecks', 'verifyPassword', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3126,7 +3126,7 @@ public function testUpdateShareLinkEnableSendPasswordByTalkWithNoPassword() { $manager->expects($this->once())->method('linkCreateChecks')->with($share); $manager->expects($this->never())->method('verifyPassword'); $manager->expects($this->never())->method('pathCreateChecks'); - $manager->expects($this->never())->method('validateExpirationDate'); + $manager->expects($this->never())->method('validateExpirationDateLink'); $this->hasher->expects($this->never()) ->method('hash'); @@ -3158,7 +3158,7 @@ public function testUpdateShareMail() { 'verifyPassword', 'pathCreateChecks', 'linkCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3191,7 +3191,7 @@ public function testUpdateShareMail() { $manager->expects($this->once())->method('verifyPassword')->with('password'); $manager->expects($this->once())->method('pathCreateChecks')->with($file); $manager->expects($this->never())->method('linkCreateChecks'); - $manager->expects($this->never())->method('validateExpirationDate'); + $manager->expects($this->never())->method('validateExpirationDateLink'); $this->hasher->expects($this->once()) ->method('hash') @@ -3233,7 +3233,7 @@ public function testUpdateShareMailEnableSendPasswordByTalk() { 'verifyPassword', 'pathCreateChecks', 'linkCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3269,7 +3269,7 @@ public function testUpdateShareMailEnableSendPasswordByTalk() { $manager->expects($this->once())->method('verifyPassword')->with('password'); $manager->expects($this->once())->method('pathCreateChecks')->with($file); $manager->expects($this->never())->method('linkCreateChecks'); - $manager->expects($this->never())->method('validateExpirationDate'); + $manager->expects($this->never())->method('validateExpirationDateLink'); $this->hasher->expects($this->once()) ->method('hash') @@ -3311,7 +3311,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkWithDifferentPassword 'verifyPassword', 'pathCreateChecks', 'linkCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3347,7 +3347,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkWithDifferentPassword $manager->expects($this->once())->method('verifyPassword')->with('password'); $manager->expects($this->once())->method('pathCreateChecks')->with($file); $manager->expects($this->never())->method('linkCreateChecks'); - $manager->expects($this->never())->method('validateExpirationDate'); + $manager->expects($this->never())->method('validateExpirationDateLink'); $this->hasher->expects($this->once()) ->method('verify') @@ -3397,7 +3397,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkWithNoPassword() { 'verifyPassword', 'pathCreateChecks', 'linkCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3433,7 +3433,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkWithNoPassword() { $manager->expects($this->never())->method('verifyPassword'); $manager->expects($this->never())->method('pathCreateChecks'); $manager->expects($this->never())->method('linkCreateChecks'); - $manager->expects($this->never())->method('validateExpirationDate'); + $manager->expects($this->never())->method('validateExpirationDateLink'); $this->hasher->expects($this->never()) ->method('hash'); @@ -3469,7 +3469,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkRemovingPassword() { 'verifyPassword', 'pathCreateChecks', 'linkCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3505,7 +3505,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkRemovingPassword() { $manager->expects($this->never())->method('verifyPassword'); $manager->expects($this->never())->method('pathCreateChecks'); $manager->expects($this->never())->method('linkCreateChecks'); - $manager->expects($this->never())->method('validateExpirationDate'); + $manager->expects($this->never())->method('validateExpirationDateLink'); $this->hasher->expects($this->never()) ->method('hash'); @@ -3541,7 +3541,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkRemovingPasswordWithE 'verifyPassword', 'pathCreateChecks', 'linkCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3577,7 +3577,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkRemovingPasswordWithE $manager->expects($this->never())->method('verifyPassword'); $manager->expects($this->never())->method('pathCreateChecks'); $manager->expects($this->never())->method('linkCreateChecks'); - $manager->expects($this->never())->method('validateExpirationDate'); + $manager->expects($this->never())->method('validateExpirationDateLink'); $this->hasher->expects($this->never()) ->method('hash'); @@ -3613,7 +3613,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkWithPreviousPassword( 'verifyPassword', 'pathCreateChecks', 'linkCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3649,7 +3649,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkWithPreviousPassword( $manager->expects($this->never())->method('verifyPassword'); $manager->expects($this->never())->method('pathCreateChecks'); $manager->expects($this->never())->method('linkCreateChecks'); - $manager->expects($this->never())->method('validateExpirationDate'); + $manager->expects($this->never())->method('validateExpirationDateLink'); $this->hasher->expects($this->once()) ->method('verify') @@ -3689,7 +3689,7 @@ public function testUpdateShareMailDisableSendPasswordByTalkWithPreviousPassword 'verifyPassword', 'pathCreateChecks', 'linkCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3725,7 +3725,7 @@ public function testUpdateShareMailDisableSendPasswordByTalkWithPreviousPassword $manager->expects($this->never())->method('verifyPassword'); $manager->expects($this->never())->method('pathCreateChecks'); $manager->expects($this->never())->method('linkCreateChecks'); - $manager->expects($this->never())->method('validateExpirationDate'); + $manager->expects($this->never())->method('validateExpirationDateLink'); $this->hasher->expects($this->once()) ->method('verify') @@ -3765,7 +3765,7 @@ public function testUpdateShareMailDisableSendPasswordByTalkWithoutChangingPassw 'verifyPassword', 'pathCreateChecks', 'linkCreateChecks', - 'validateExpirationDate', + 'validateExpirationDateLink', ]) ->getMock(); @@ -3801,7 +3801,7 @@ public function testUpdateShareMailDisableSendPasswordByTalkWithoutChangingPassw $manager->expects($this->never())->method('verifyPassword'); $manager->expects($this->never())->method('pathCreateChecks'); $manager->expects($this->never())->method('linkCreateChecks'); - $manager->expects($this->never())->method('validateExpirationDate'); + $manager->expects($this->never())->method('validateExpirationDateLink'); $this->hasher->expects($this->never()) ->method('verify');