diff options
-rw-r--r-- | apps/files_trashbin/lib/Trashbin.php | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/apps/files_trashbin/lib/Trashbin.php b/apps/files_trashbin/lib/Trashbin.php index bf2fa57453f..f8067949cda 100644 --- a/apps/files_trashbin/lib/Trashbin.php +++ b/apps/files_trashbin/lib/Trashbin.php @@ -88,6 +88,10 @@ class Trashbin { if (!$userManager->userExists($uid)) { $uid = User::getUser(); } + if (!$uid) { + // no owner, usually because of share link from ext storage + return [null, null]; + } Filesystem::initMountPoints($uid); if ($uid != User::getUser()) { $info = Filesystem::getFileInfo($filename); @@ -204,6 +208,12 @@ class Trashbin { list(, $user) = explode('/', $root); list($owner, $ownerPath) = self::getUidAndFilename($file_path); + // if no owner found (ex: ext storage + share link), will use the current user's trashbin then + if (is_null($owner)) { + $owner = $user; + $ownerPath = $file_path; + } + $ownerView = new View('/' . $owner); // file has been deleted in between if (is_null($ownerPath) || $ownerPath === '' || !$ownerView->file_exists('/files/' . $ownerPath)) { |