Merge pull request #50389 from nextcloud/revert/share-node-accessible

Revert "fix(Share20\Manager): Ensure node is still accessible when checking share"
pull/50394/head
Stephan Orbaugh 2025-01-24 10:46:47 +07:00 committed by GitHub
commit bd3877c7c0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 38 deletions

@ -1464,15 +1464,6 @@ class Manager implements IManager {
$this->deleteShare($share);
throw new ShareNotFound($this->l->t('The requested share does not exist anymore'));
}
try {
$share->getNode();
// Ignore share, file is still accessible
} catch (NotFoundException) {
// Access lost, but maybe only temporarily, so don't delete the share right away
throw new ShareNotFound($this->l->t('The requested share does not exist anymore'));
}
if ($this->config->getAppValue('files_sharing', 'hide_disabled_user_shares', 'no') === 'yes') {
$uids = array_unique([$share->getShareOwner(),$share->getSharedBy()]);
foreach ($uids as $uid) {

@ -25,7 +25,6 @@ use OCP\Files\Mount\IMountManager;
use OCP\Files\Mount\IMountPoint;
use OCP\Files\Mount\IShareOwnerlessMount;
use OCP\Files\Node;
use OCP\Files\NotFoundException;
use OCP\Files\Storage\IStorage;
use OCP\HintException;
use OCP\IAppConfig;
@ -675,24 +674,6 @@ class ManagerTest extends \Test\TestCase {
}
public function testGetShareByIdNodeAccessible(): void {
$share = $this->createMock(IShare::class);
$share
->expects($this->once())
->method('getNode')
->willThrowException(new NotFoundException());
$this->defaultProvider
->expects($this->once())
->method('getShareById')
->with(42)
->willReturn($share);
$this->expectException(ShareNotFound::class);
$this->manager->getShareById('default:42');
}
public function testGetExpiredShareById(): void {
$this->expectException(\OCP\Share\Exceptions\ShareNotFound::class);
@ -2901,10 +2882,9 @@ class ManagerTest extends \Test\TestCase {
}
public function testGetSharesBy(): void {
$node = $this->createMock(Folder::class);
$share = $this->manager->newShare();
$share->setNode($node);
$node = $this->createMock(Folder::class);
$this->defaultProvider->expects($this->once())
->method('getSharesBy')
@ -2957,8 +2937,6 @@ class ManagerTest extends \Test\TestCase {
* deleted (as they are evaluated). but share 8 should still be there.
*/
public function testGetSharesByExpiredLinkShares(): void {
$node = $this->createMock(File::class);
$manager = $this->createManagerMock()
->setMethods(['deleteShare'])
->getMock();
@ -2972,7 +2950,6 @@ class ManagerTest extends \Test\TestCase {
for ($i = 0; $i < 8; $i++) {
$share = $this->manager->newShare();
$share->setId($i);
$share->setNode($node);
$shares[] = $share;
}
@ -2993,6 +2970,8 @@ class ManagerTest extends \Test\TestCase {
$shares2[] = clone $shares[$i];
}
$node = $this->createMock(File::class);
/*
* Simulate the getSharesBy call.
*/
@ -3154,10 +3133,8 @@ class ManagerTest extends \Test\TestCase {
$date = new \DateTime();
$date->setTime(0, 0, 0);
$date->add(new \DateInterval('P2D'));
$node = $this->createMock(File::class);
$share = $this->manager->newShare();
$share->setExpirationDate($date);
$share->setNode($node);
$share->setShareOwner('owner');
$share->setSharedBy('sharedBy');
@ -3235,10 +3212,8 @@ class ManagerTest extends \Test\TestCase {
$date = new \DateTime();
$date->setTime(0, 0, 0);
$date->add(new \DateInterval('P2D'));
$node = $this->createMock(Folder::class);
$share = $this->manager->newShare();
$share->setExpirationDate($date);
$share->setNode($node);
$this->defaultProvider->expects($this->once())
->method('getShareByToken')