|
|
@ -6,7 +6,6 @@ |
|
|
|
*/ |
|
|
|
namespace OCA\Files_Trashbin; |
|
|
|
|
|
|
|
use Exception; |
|
|
|
use OC\Files\Cache\Cache; |
|
|
|
use OC\Files\Cache\CacheEntry; |
|
|
|
use OC\Files\Cache\CacheQueryBuilder; |
|
|
@ -454,6 +453,9 @@ class Trashbin implements IEventListener { |
|
|
|
*/ |
|
|
|
public static function restore($file, $filename, $timestamp) { |
|
|
|
$user = OC_User::getUser(); |
|
|
|
if (!$user) { |
|
|
|
throw new \Exception('Tried to restore a file while not logged in'); |
|
|
|
} |
|
|
|
$view = new View('/' . $user); |
|
|
|
|
|
|
|
$location = ''; |
|
|
@ -490,8 +492,8 @@ class Trashbin implements IEventListener { |
|
|
|
$sourcePath = Filesystem::normalizePath($file); |
|
|
|
$targetPath = Filesystem::normalizePath('/' . $location . '/' . $uniqueFilename); |
|
|
|
|
|
|
|
$sourceNode = self::getNodeForPath($sourcePath); |
|
|
|
$targetNode = self::getNodeForPath($targetPath); |
|
|
|
$sourceNode = self::getNodeForPath($user, $sourcePath); |
|
|
|
$targetNode = self::getNodeForPath($user, $targetPath, 'files'); |
|
|
|
$run = true; |
|
|
|
$event = new BeforeNodeRestoredEvent($sourceNode, $targetNode, $run); |
|
|
|
$dispatcher = \OC::$server->get(IEventDispatcher::class); |
|
|
@ -511,8 +513,8 @@ class Trashbin implements IEventListener { |
|
|
|
$view->chroot($fakeRoot); |
|
|
|
Util::emitHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', ['filePath' => $targetPath, 'trashPath' => $sourcePath]); |
|
|
|
|
|
|
|
$sourceNode = self::getNodeForPath($sourcePath); |
|
|
|
$targetNode = self::getNodeForPath($targetPath); |
|
|
|
$sourceNode = self::getNodeForPath($user, $sourcePath); |
|
|
|
$targetNode = self::getNodeForPath($user, $targetPath, 'files'); |
|
|
|
$event = new NodeRestoredEvent($sourceNode, $targetNode); |
|
|
|
$dispatcher = \OC::$server->get(IEventDispatcher::class); |
|
|
|
$dispatcher->dispatchTyped($event); |
|
|
@ -1162,14 +1164,12 @@ class Trashbin implements IEventListener { |
|
|
|
$user = OC_User::getUser(); |
|
|
|
$rootFolder = \OC::$server->get(IRootFolder::class); |
|
|
|
|
|
|
|
if ($user !== false) { |
|
|
|
$userFolder = $rootFolder->getUserFolder($user); |
|
|
|
/** @var Folder */ |
|
|
|
$trashFolder = $userFolder->getParent()->get('files_trashbin/files'); |
|
|
|
try { |
|
|
|
return $trashFolder->get($path); |
|
|
|
} catch (NotFoundException $ex) { |
|
|
|
} |
|
|
|
$userFolder = $rootFolder->getUserFolder($user); |
|
|
|
/** @var Folder $trashFolder */ |
|
|
|
$trashFolder = $userFolder->getParent()->get($baseDir); |
|
|
|
try { |
|
|
|
return $trashFolder->get($path); |
|
|
|
} catch (NotFoundException $ex) { |
|
|
|
} |
|
|
|
|
|
|
|
$view = \OC::$server->get(View::class); |
|
|
|