diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2019-11-13 15:05:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-13 15:05:19 +0100 |
commit | 570bb4064369f3bea6f22d8ff48fd7f16b8bfbf8 (patch) | |
tree | 32bdff42c2c3480c66256e3b1a0dea2a6c5b5a91 | |
parent | d9204f61ead5f5c95cbef21a5d6fc40ac2d1861a (diff) | |
parent | fc4c1077882681b94bf02c9957fe2816ddeadbb7 (diff) | |
download | nextcloud-server-570bb4064369f3bea6f22d8ff48fd7f16b8bfbf8.tar.gz nextcloud-server-570bb4064369f3bea6f22d8ff48fd7f16b8bfbf8.zip |
Merge pull request #17924 from nextcloud/enh/15664/check_quota_before_transfer
Check quota before transfer ownership
-rw-r--r-- | apps/files/lib/Command/TransferOwnership.php | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/apps/files/lib/Command/TransferOwnership.php b/apps/files/lib/Command/TransferOwnership.php index f417898f217..a77a02a4947 100644 --- a/apps/files/lib/Command/TransferOwnership.php +++ b/apps/files/lib/Command/TransferOwnership.php @@ -32,6 +32,7 @@ use OC\Files\Filesystem; use OC\Files\View; use OCP\Files\FileInfo; use OCP\Files\IHomeStorage; +use OCP\Files\IRootFolder; use OCP\Files\Mount\IMountManager; use OCP\IUser; use OCP\IUserManager; @@ -76,7 +77,10 @@ class TransferOwnership extends Command { /** @var string */ private $finalTarget; - public function __construct(IUserManager $userManager, IManager $shareManager, IMountManager $mountManager) { + public function __construct(IUserManager $userManager, + IManager $shareManager, + IMountManager $mountManager, + IRootFolder $rootFolder) { $this->userManager = $userManager; $this->shareManager = $shareManager; $this->mountManager = $mountManager; @@ -174,6 +178,15 @@ class TransferOwnership extends Command { */ protected function analyse(OutputInterface $output) { $view = new View(); + + $output->writeln('Validating quota'); + $size = $view->getFileInfo($this->sourcePath, false)->getSize(false); + $freeSpace = $view->free_space($this->destinationUser . '/files/'); + if ($size > $freeSpace) { + $output->writeln('<error>Target user does not have enough free space available</error>'); + throw new \Exception('Execution terminated'); + } + $output->writeln("Analysing files of $this->sourceUser ..."); $progress = new ProgressBar($output); $progress->start(); @@ -207,7 +220,6 @@ class TransferOwnership extends Command { } throw new \Exception('Execution terminated.'); } - } /** |