* @return bool
*/
protected function shouldMoveToTrash($path) {
+ $normalized = Filesystem::normalizePath($this->mountPoint . '/' . $path);
+ $parts = explode('/', $normalized);
+ if (count($parts) < 4 || !$this->userManager->userExists($parts[1])) {
+ return false;
+ }
// check if there is a app which want to disable the trash bin for this file
$fileId = $this->storage->getCache()->getId($path);
- $nodes = $this->rootFolder->getById($fileId);
+ $nodes = $this->rootFolder->getUserFolder($parts[1])->getById($fileId);
foreach ($nodes as $node) {
$event = $this->createMoveToTrashEvent($node);
$this->eventDispatcher->dispatch('OCA\Files_Trashbin::moveToTrash', $event);
}
}
- $normalized = Filesystem::normalizePath($this->mountPoint . '/' . $path);
- $parts = explode('/', $normalized);
- if (count($parts) < 4) {
- return false;
- }
-
- if ($parts[2] === 'files' && $this->userManager->userExists($parts[1])) {
+ if ($parts[2] === 'files') {
return true;
}
use OCA\Files_Trashbin\Storage;
use OCA\Files_Trashbin\Trash\ITrashManager;
use OCP\Files\Cache\ICache;
+use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\Node;
use OCP\ILogger;
$eventDispatcher = $this->getMockBuilder(EventDispatcher::class)
->disableOriginalConstructor()->getMock();
$rootFolder = $this->createMock(IRootFolder::class);
+ $userFolder = $this->createMock(Folder::class);
$node = $this->getMockBuilder(Node::class)->disableOriginalConstructor()->getMock();
$trashManager = $this->createMock(ITrashManager::class);
$event = $this->getMockBuilder(MoveToTrashEvent::class)->disableOriginalConstructor()->getMock();
$event->expects($this->any())->method('shouldMoveToTrashBin')->willReturn(!$appDisablesTrash);
- $rootFolder->expects($this->any())->method('getById')->with($fileID)->willReturn([$node]);
+ $userFolder->expects($this->any())->method('getById')->with($fileID)->willReturn([$node]);
+ $rootFolder->expects($this->any())->method('getUserFolder')->willReturn($userFolder);
$storage = $this->getMockBuilder(Storage::class)
->setConstructorArgs(