mirror of
https://github.com/nextcloud/server.git
synced 2026-02-20 00:12:30 -05:00
Merge pull request #41073 from nextcloud/backport/40495/stable25
[stable25] fix(sharing): set name to target name in sharing cache
This commit is contained in:
commit
fcca971d23
2 changed files with 41 additions and 0 deletions
|
|
@ -154,6 +154,10 @@ class Cache extends CacheJail {
|
|||
} else {
|
||||
$entry['permissions'] = $this->storage->getPermissions($entry['path']);
|
||||
}
|
||||
|
||||
if ($this->storage->getShare()->getNodeId() === $entry['fileid']) {
|
||||
$entry['name'] = basename($this->storage->getShare()->getTarget());
|
||||
}
|
||||
} catch (StorageNotAvailableException $e) {
|
||||
// thrown by FailedStorage e.g. when the sharer does not exist anymore
|
||||
// (IDE may say the exception is never thrown – false negative)
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ class CacheTest extends TestCase {
|
|||
$this->view->file_put_contents('container/shareddir/subdir/another.txt', $textData);
|
||||
$this->view->file_put_contents('container/shareddir/subdir/another too.txt', $textData);
|
||||
$this->view->file_put_contents('container/shareddir/subdir/not a text file.xml', '<xml></xml>');
|
||||
$this->view->file_put_contents('simplefile.txt', $textData);
|
||||
|
||||
[$this->ownerStorage,] = $this->view->resolvePath('');
|
||||
$this->ownerCache = $this->ownerStorage->getCache();
|
||||
|
|
@ -302,6 +303,42 @@ class CacheTest extends TestCase {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* This covers a bug where the share owners name was propagated
|
||||
* to the recipient in the recent files API response where the
|
||||
* share recipient has a different target set
|
||||
*
|
||||
* https://github.com/nextcloud/server/issues/39879
|
||||
*/
|
||||
public function testShareRenameOriginalFileInRecentResults() {
|
||||
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
|
||||
|
||||
$rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER1);
|
||||
$node = $rootFolder->get('simplefile.txt');
|
||||
$share = $this->shareManager->newShare();
|
||||
$share->setNode($node)
|
||||
->setShareType(IShare::TYPE_USER)
|
||||
->setSharedWith(self::TEST_FILES_SHARING_API_USER3)
|
||||
->setSharedBy(self::TEST_FILES_SHARING_API_USER1)
|
||||
->setPermissions(\OCP\Constants::PERMISSION_READ);
|
||||
$share = $this->shareManager->createShare($share);
|
||||
$share->setStatus(IShare::STATUS_ACCEPTED);
|
||||
$this->shareManager->updateShare($share);
|
||||
|
||||
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
|
||||
$node->move(self::TEST_FILES_SHARING_API_USER1 . '/files/simplefile2.txt');
|
||||
|
||||
self::loginHelper(self::TEST_FILES_SHARING_API_USER3);
|
||||
$rootFolder = \OC::$server->getUserFolder(self::TEST_FILES_SHARING_API_USER3);
|
||||
$recents = $rootFolder->getRecent(10);
|
||||
self::assertEquals([
|
||||
'welcome.txt',
|
||||
'simplefile.txt'
|
||||
], array_map(function($node) {
|
||||
return $node->getFileInfo()['name'];
|
||||
}, $recents));
|
||||
}
|
||||
|
||||
public function testGetFolderContentsWhenSubSubdirShared() {
|
||||
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue