diff options
Diffstat (limited to 'apps/files_versions/command/cleanup.php')
-rw-r--r-- | apps/files_versions/command/cleanup.php | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/apps/files_versions/command/cleanup.php b/apps/files_versions/command/cleanup.php deleted file mode 100644 index 1abf62763b1..00000000000 --- a/apps/files_versions/command/cleanup.php +++ /dev/null @@ -1,114 +0,0 @@ -<?php -/** - * @author Björn Schießle <schiessle@owncloud.com> - * - * @copyright Copyright (c) 2016, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -namespace OCA\Files_Versions\Command; - - -use OCP\Files\IRootFolder; -use OCP\IUserBackend; -use OCP\IUserManager; -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -class CleanUp extends Command { - - /** @var IUserManager */ - protected $userManager; - - /** @var IRootFolder */ - protected $rootFolder; - - /** - * @param IRootFolder $rootFolder - * @param IUserManager $userManager - */ - function __construct(IRootFolder $rootFolder, IUserManager $userManager) { - parent::__construct(); - $this->userManager = $userManager; - $this->rootFolder = $rootFolder; - } - - protected function configure() { - $this - ->setName('versions:cleanup') - ->setDescription('Delete versions') - ->addArgument( - 'user_id', - InputArgument::OPTIONAL | InputArgument::IS_ARRAY, - 'delete versions of the given user(s), if no user is given all versions will be deleted' - ); - } - - - protected function execute(InputInterface $input, OutputInterface $output) { - - $users = $input->getArgument('user_id'); - if (!empty($users)) { - foreach ($users as $user) { - if ($this->userManager->userExists($user)) { - $output->writeln("Delete versions of <info>$user</info>"); - $this->deleteVersions($user); - } else { - $output->writeln("<error>Unknown user $user</error>"); - } - } - } else { - $output->writeln('Delete all versions'); - foreach ($this->userManager->getBackends() as $backend) { - $name = get_class($backend); - - if ($backend instanceof IUserBackend) { - $name = $backend->getBackendName(); - } - - $output->writeln("Delete versions for users on backend <info>$name</info>"); - - $limit = 500; - $offset = 0; - do { - $users = $backend->getUsers('', $limit, $offset); - foreach ($users as $user) { - $output->writeln(" <info>$user</info>"); - $this->deleteVersions($user); - } - $offset += $limit; - } while (count($users) >= $limit); - } - } - } - - - /** - * delete versions for the given user - * - * @param string $user - */ - protected function deleteVersions($user) { - \OC_Util::tearDownFS(); - \OC_Util::setupFS($user); - if ($this->rootFolder->nodeExists('/' . $user . '/files_versions')) { - $this->rootFolder->get('/' . $user . '/files_versions')->delete(); - } - } - -} |