aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/command/transferownership.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files/command/transferownership.php')
-rw-r--r--apps/files/command/transferownership.php13
1 files changed, 11 insertions, 2 deletions
diff --git a/apps/files/command/transferownership.php b/apps/files/command/transferownership.php
index 3674727b167..6bf2fae6bdf 100644
--- a/apps/files/command/transferownership.php
+++ b/apps/files/command/transferownership.php
@@ -24,7 +24,7 @@ namespace OCA\Files\Command;
use OC\Files\Filesystem;
use OC\Files\View;
use OCP\Files\FileInfo;
-use OCP\Files\Folder;
+use OCP\Files\Mount\IMountManager;
use OCP\IUserManager;
use OCP\Share\IManager;
use OCP\Share\IShare;
@@ -42,6 +42,9 @@ class TransferOwnership extends Command {
/** @var IManager */
private $shareManager;
+ /** @var IMountManager */
+ private $mountManager;
+
/** @var FileInfo[] */
private $allFiles = [];
@@ -60,9 +63,10 @@ class TransferOwnership extends Command {
/** @var string */
private $finalTarget;
- public function __construct(IUserManager $userManager, IManager $shareManager) {
+ public function __construct(IUserManager $userManager, IManager $shareManager, IMountManager $mountManager) {
$this->userManager = $userManager;
$this->shareManager = $shareManager;
+ $this->mountManager = $mountManager;
parent::__construct();
}
@@ -206,6 +210,11 @@ class TransferOwnership extends Command {
foreach($this->shares as $share) {
if ($share->getSharedWith() === $this->destinationUser) {
+ // Unmount the shares before deleting, so we don't try to get the storage later on.
+ $shareMountPoint = $this->mountManager->find('/' . $this->destinationUser . '/files' . $share->getTarget());
+ if ($shareMountPoint) {
+ $this->mountManager->removeMount($shareMountPoint->getMountPoint());
+ }
$this->shareManager->deleteShare($share);
} else {
if ($share->getShareOwner() === $this->sourceUser) {