|
|
|
@ -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(); |
|
|
|
} |
|
|
|
|
|
|
|
@ -203,14 +207,13 @@ class TransferOwnership extends Command { |
|
|
|
private function restoreShares(OutputInterface $output) { |
|
|
|
$output->writeln("Restoring shares ..."); |
|
|
|
$progress = new ProgressBar($output, count($this->shares)); |
|
|
|
$mountManager = Filesystem::getMountManager($this->destinationUser); |
|
|
|
|
|
|
|
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 = $mountManager->find('/' . $this->destinationUser . '/files' . $share->getTarget()); |
|
|
|
$shareMountPoint = $this->mountManager->find('/' . $this->destinationUser . '/files' . $share->getTarget()); |
|
|
|
if ($shareMountPoint) { |
|
|
|
$mountManager->removeMount($shareMountPoint->getMountPoint()); |
|
|
|
$this->mountManager->removeMount($shareMountPoint->getMountPoint()); |
|
|
|
} |
|
|
|
$this->shareManager->deleteShare($share); |
|
|
|
} else { |
|
|
|
|