diff options
Diffstat (limited to 'apps/files_versions/lib/BackgroundJob/ExpireVersions.php')
-rw-r--r-- | apps/files_versions/lib/BackgroundJob/ExpireVersions.php | 83 |
1 files changed, 27 insertions, 56 deletions
diff --git a/apps/files_versions/lib/BackgroundJob/ExpireVersions.php b/apps/files_versions/lib/BackgroundJob/ExpireVersions.php index d69e5bb87ce..794cbc5b882 100644 --- a/apps/files_versions/lib/BackgroundJob/ExpireVersions.php +++ b/apps/files_versions/lib/BackgroundJob/ExpireVersions.php @@ -1,74 +1,47 @@ <?php + /** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Joas Schilling <coding@schilljs.com> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> - * @author Victor Dubiniuk <dubiniuk@owncloud.com> - * - * @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/> - * + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only */ - namespace OCA\Files_Versions\BackgroundJob; +use OC\Files\View; +use OCA\Files_Versions\Expiration; +use OCA\Files_Versions\Storage; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\TimedJob; +use OCP\IConfig; use OCP\IUser; use OCP\IUserManager; -use OCA\Files_Versions\AppInfo\Application; -use OCA\Files_Versions\Storage; -use OCA\Files_Versions\Expiration; - -class ExpireVersions extends \OC\BackgroundJob\TimedJob { - const ITEMS_PER_SESSION = 1000; +class ExpireVersions extends TimedJob { + public const ITEMS_PER_SESSION = 1000; - /** - * @var Expiration - */ - private $expiration; - - /** - * @var IUserManager - */ - private $userManager; - - public function __construct(IUserManager $userManager = null, Expiration $expiration = null) { + public function __construct( + private IConfig $config, + private IUserManager $userManager, + private Expiration $expiration, + ITimeFactory $time, + ) { + parent::__construct($time); // Run once per 30 minutes $this->setInterval(60 * 30); - - if (is_null($expiration) || is_null($userManager)) { - $this->fixDIForJobs(); - } else { - $this->expiration = $expiration; - $this->userManager = $userManager; - } } - protected function fixDIForJobs() { - $application = new Application(); - $this->expiration = $application->getContainer()->query('Expiration'); - $this->userManager = \OC::$server->getUserManager(); - } + public function run($argument) { + $backgroundJob = $this->config->getAppValue('files_versions', 'background_job_expire_versions', 'yes'); + if ($backgroundJob === 'no') { + return; + } - protected function run($argument) { $maxAge = $this->expiration->getMaxAgeAsTimestamp(); if (!$maxAge) { return; } - $this->userManager->callForSeenUsers(function(IUser $user) { + $this->userManager->callForSeenUsers(function (IUser $user): void { $uid = $user->getUID(); if (!$this->setupFS($uid)) { return; @@ -79,15 +52,13 @@ class ExpireVersions extends \OC\BackgroundJob\TimedJob { /** * Act on behalf on trash item owner - * @param string $user - * @return boolean */ - protected function setupFS($user) { + protected function setupFS(string $user): bool { \OC_Util::tearDownFS(); \OC_Util::setupFS($user); // Check if this user has a versions directory - $view = new \OC\Files\View('/' . $user); + $view = new View('/' . $user); if (!$view->is_dir('/files_versions')) { return false; } |