Skip to content

Commit

Permalink
Update user share must use correct expiration validation
Browse files Browse the repository at this point in the history
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 <vincent@nextcloud.com>
  • Loading branch information
PVince81 authored and backportbot[bot] committed Mar 19, 2021
1 parent 8670ef7 commit 7885fca
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 43 deletions.
6 changes: 3 additions & 3 deletions lib/private/Share20/Manager.php
Original file line number Diff line number Diff line change
Expand Up @@ -969,15 +969,15 @@ public function updateShare(\OCP\Share\IShare $share) {

if ($share->getExpirationDate() != $originalShare->getExpirationDate()) {
//Verify the expiration date
$this->validateExpirationDate($share);
$this->validateExpirationDateInternal($share);
$expirationDateUpdated = true;
}
} elseif ($share->getShareType() === \OCP\Share::SHARE_TYPE_GROUP) {
$this->groupCreateChecks($share);

if ($share->getExpirationDate() != $originalShare->getExpirationDate()) {
//Verify the expiration date
$this->validateExpirationDate($share);
$this->validateExpirationDateInternal($share);
$expirationDateUpdated = true;
}
} elseif ($share->getShareType() === \OCP\Share::SHARE_TYPE_LINK) {
Expand All @@ -993,7 +993,7 @@ public function updateShare(\OCP\Share\IShare $share) {

if ($share->getExpirationDate() != $originalShare->getExpirationDate()) {
//Verify the expiration date
$this->validateExpirationDate($share);
$this->validateExpirationDateLink($share);
$expirationDateUpdated = true;
}
} elseif ($share->getShareType() === \OCP\Share::SHARE_TYPE_EMAIL) {
Expand Down
80 changes: 40 additions & 40 deletions tests/lib/Share20/ManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -1060,7 +1060,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() {
Expand All @@ -1076,7 +1076,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() {
Expand All @@ -1088,7 +1088,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());
}
Expand All @@ -1108,7 +1108,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());
Expand All @@ -1129,7 +1129,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());
Expand All @@ -1152,7 +1152,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() {
Expand All @@ -1179,7 +1179,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());
}
Expand All @@ -1201,7 +1201,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());
}
Expand All @@ -1216,7 +1216,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());
}
Expand All @@ -1241,7 +1241,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());
}
Expand Down Expand Up @@ -1270,7 +1270,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());
}
Expand All @@ -1291,7 +1291,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());
Expand All @@ -1315,7 +1315,7 @@ public function testValidateExpirationDateHookException() {
$data['message'] = 'Invalid date!';
});

self::invokePrivate($this->manager, 'validateExpirationDate', [$share]);
self::invokePrivate($this->manager, 'validateExpirationDateLink', [$share]);
}

public function testValidateExpirationDateExistingShareNoDefault() {
Expand All @@ -1329,7 +1329,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());
}
Expand Down Expand Up @@ -2033,7 +2033,7 @@ public function testCreateShareLink() {
'generalCreateChecks',
'linkCreateChecks',
'pathCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
'verifyPassword',
'setLinkParent',
])
Expand Down Expand Up @@ -2075,7 +2075,7 @@ public function testCreateShareLink() {
->method('pathCreateChecks')
->with($path);
$manager->expects($this->once())
->method('validateExpirationDate')
->method('validateExpirationDateLink')
->with($share)
->willReturn($share);
$manager->expects($this->once())
Expand Down Expand Up @@ -2158,7 +2158,7 @@ public function testCreateShareMail() {
'generalCreateChecks',
'linkCreateChecks',
'pathCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
'verifyPassword',
'setLinkParent',
])
Expand Down Expand Up @@ -2194,7 +2194,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())
Expand Down Expand Up @@ -3008,7 +3008,7 @@ public function testUpdateShareLink() {
'linkCreateChecks',
'pathCreateChecks',
'verifyPassword',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3037,7 +3037,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())
Expand Down Expand Up @@ -3089,7 +3089,7 @@ public function testUpdateShareLinkEnableSendPasswordByTalkWithNoPassword() {
'linkCreateChecks',
'pathCreateChecks',
'verifyPassword',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3123,7 +3123,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');
Expand Down Expand Up @@ -3155,7 +3155,7 @@ public function testUpdateShareMail() {
'verifyPassword',
'pathCreateChecks',
'linkCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3188,7 +3188,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')
Expand Down Expand Up @@ -3230,7 +3230,7 @@ public function testUpdateShareMailEnableSendPasswordByTalk() {
'verifyPassword',
'pathCreateChecks',
'linkCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3266,7 +3266,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')
Expand Down Expand Up @@ -3308,7 +3308,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkWithDifferentPassword
'verifyPassword',
'pathCreateChecks',
'linkCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3344,7 +3344,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')
Expand Down Expand Up @@ -3394,7 +3394,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkWithNoPassword() {
'verifyPassword',
'pathCreateChecks',
'linkCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3430,7 +3430,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');
Expand Down Expand Up @@ -3466,7 +3466,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkRemovingPassword() {
'verifyPassword',
'pathCreateChecks',
'linkCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3502,7 +3502,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');
Expand Down Expand Up @@ -3538,7 +3538,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkRemovingPasswordWithE
'verifyPassword',
'pathCreateChecks',
'linkCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3574,7 +3574,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');
Expand Down Expand Up @@ -3610,7 +3610,7 @@ public function testUpdateShareMailEnableSendPasswordByTalkWithPreviousPassword(
'verifyPassword',
'pathCreateChecks',
'linkCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3646,7 +3646,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')
Expand Down Expand Up @@ -3686,7 +3686,7 @@ public function testUpdateShareMailDisableSendPasswordByTalkWithPreviousPassword
'verifyPassword',
'pathCreateChecks',
'linkCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3722,7 +3722,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')
Expand Down Expand Up @@ -3762,7 +3762,7 @@ public function testUpdateShareMailDisableSendPasswordByTalkWithoutChangingPassw
'verifyPassword',
'pathCreateChecks',
'linkCreateChecks',
'validateExpirationDate',
'validateExpirationDateLink',
])
->getMock();

Expand Down Expand Up @@ -3798,7 +3798,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');
Expand Down

0 comments on commit 7885fca

Please sign in to comment.