Merge pull request #17928 from nextcloud/backport/17924/stable17
[stable17] Check quota before transfer ownership
This commit is contained in:
commit
6708ed71a9
|
@ -32,6 +32,7 @@ use OC\Files\Filesystem;
|
||||||
use OC\Files\View;
|
use OC\Files\View;
|
||||||
use OCP\Files\FileInfo;
|
use OCP\Files\FileInfo;
|
||||||
use OCP\Files\IHomeStorage;
|
use OCP\Files\IHomeStorage;
|
||||||
|
use OCP\Files\IRootFolder;
|
||||||
use OCP\Files\Mount\IMountManager;
|
use OCP\Files\Mount\IMountManager;
|
||||||
use OCP\IUser;
|
use OCP\IUser;
|
||||||
use OCP\IUserManager;
|
use OCP\IUserManager;
|
||||||
|
@ -76,7 +77,10 @@ class TransferOwnership extends Command {
|
||||||
/** @var string */
|
/** @var string */
|
||||||
private $finalTarget;
|
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->userManager = $userManager;
|
||||||
$this->shareManager = $shareManager;
|
$this->shareManager = $shareManager;
|
||||||
$this->mountManager = $mountManager;
|
$this->mountManager = $mountManager;
|
||||||
|
@ -174,6 +178,15 @@ class TransferOwnership extends Command {
|
||||||
*/
|
*/
|
||||||
protected function analyse(OutputInterface $output) {
|
protected function analyse(OutputInterface $output) {
|
||||||
$view = new View();
|
$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 ...");
|
$output->writeln("Analysing files of $this->sourceUser ...");
|
||||||
$progress = new ProgressBar($output);
|
$progress = new ProgressBar($output);
|
||||||
$progress->start();
|
$progress->start();
|
||||||
|
@ -207,7 +220,6 @@ class TransferOwnership extends Command {
|
||||||
}
|
}
|
||||||
throw new \Exception('Execution terminated.');
|
throw new \Exception('Execution terminated.');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue