diff options
author | John Molakvoæ <skjnldsv@users.noreply.github.com> | 2019-11-04 18:18:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-04 18:18:32 +0100 |
commit | 13960b69da2593dcfb0cbaef222ee8b9a33142c0 (patch) | |
tree | ca43ed0f4daa75e6b03b137b3ad650c8b721efa7 /apps/files_trashbin | |
parent | 64bfd4bbeb10e07bd2133a97c50175a156d43d61 (diff) | |
parent | 964dc0a95520efbf876e0113bfafc294f4f4b322 (diff) | |
download | nextcloud-server-13960b69da2593dcfb0cbaef222ee8b9a33142c0.tar.gz nextcloud-server-13960b69da2593dcfb0cbaef222ee8b9a33142c0.zip |
Merge pull request #17509 from nextcloud/fix/application-singleton
Fix Application instances created multiple times
Diffstat (limited to 'apps/files_trashbin')
-rw-r--r-- | apps/files_trashbin/appinfo/routes.php | 8 | ||||
-rw-r--r-- | apps/files_trashbin/lib/AppInfo/Application.php | 7 | ||||
-rw-r--r-- | apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php | 3 | ||||
-rw-r--r-- | apps/files_trashbin/lib/Expiration.php | 6 | ||||
-rw-r--r-- | apps/files_trashbin/lib/Trashbin.php | 10 | ||||
-rw-r--r-- | apps/files_trashbin/tests/TrashbinTest.php | 18 |
6 files changed, 29 insertions, 23 deletions
diff --git a/apps/files_trashbin/appinfo/routes.php b/apps/files_trashbin/appinfo/routes.php index 20d52adf3f0..9f85e27bedc 100644 --- a/apps/files_trashbin/appinfo/routes.php +++ b/apps/files_trashbin/appinfo/routes.php @@ -1,4 +1,5 @@ <?php +declare(strict_types=1); /** * @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> @@ -22,10 +23,7 @@ * */ -namespace OCA\Files_Trashbin\AppInfo; - -$application = new Application(); -$application->registerRoutes($this, [ +return [ 'routes' => [ [ 'name' => 'Preview#getPreview', @@ -33,4 +31,4 @@ $application->registerRoutes($this, [ 'verb' => 'GET', ], ], -]); +]; diff --git a/apps/files_trashbin/lib/AppInfo/Application.php b/apps/files_trashbin/lib/AppInfo/Application.php index 4baa82a6b4b..a2613a13b41 100644 --- a/apps/files_trashbin/lib/AppInfo/Application.php +++ b/apps/files_trashbin/lib/AppInfo/Application.php @@ -46,12 +46,7 @@ class Application extends App { /* * Register expiration */ - $container->registerService('Expiration', function($c) { - return new Expiration( - $c->query('ServerContainer')->getConfig(), - $c->query(ITimeFactory::class) - ); - }); + $container->registerAlias('Expiration', Expiration::class); /* * Register $principalBackend for the DAV collection diff --git a/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php b/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php index e19b7ce604f..919317a7b7a 100644 --- a/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php +++ b/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php @@ -62,7 +62,8 @@ class ExpireTrash extends \OC\BackgroundJob\TimedJob { } protected function fixDIForJobs() { - $application = new Application(); + /** @var Application $application */ + $application = \OC::$server->query(Application::class); $this->userManager = \OC::$server->getUserManager(); $this->expiration = $application->getContainer()->query('Expiration'); } diff --git a/apps/files_trashbin/lib/Expiration.php b/apps/files_trashbin/lib/Expiration.php index c7ad4e29f18..933375c9537 100644 --- a/apps/files_trashbin/lib/Expiration.php +++ b/apps/files_trashbin/lib/Expiration.php @@ -49,7 +49,11 @@ class Expiration { public function __construct(IConfig $config,ITimeFactory $timeFactory){ $this->timeFactory = $timeFactory; - $this->retentionObligation = $config->getSystemValue('trashbin_retention_obligation', 'auto'); + $this->setRetentionObligation($config->getSystemValue('trashbin_retention_obligation', 'auto')); + } + + public function setRetentionObligation(string $obligation) { + $this->retentionObligation = $obligation; if ($this->retentionObligation !== 'disabled') { $this->parseRetentionObligation(); diff --git a/apps/files_trashbin/lib/Trashbin.php b/apps/files_trashbin/lib/Trashbin.php index a06a5145d99..34138c21705 100644 --- a/apps/files_trashbin/lib/Trashbin.php +++ b/apps/files_trashbin/lib/Trashbin.php @@ -747,7 +747,8 @@ class Trashbin { */ private static function scheduleExpire($user) { // let the admin disable auto expire - $application = new Application(); + /** @var Application $application */ + $application = \OC::$server->query(Application::class); $expiration = $application->getContainer()->query('Expiration'); if ($expiration->isEnabled()) { \OC::$server->getCommandBus()->push(new Expire($user)); @@ -764,7 +765,8 @@ class Trashbin { * @return int size of deleted files */ protected static function deleteFiles($files, $user, $availableSpace) { - $application = new Application(); + /** @var Application $application */ + $application = \OC::$server->query(Application::class); $expiration = $application->getContainer()->query('Expiration'); $size = 0; @@ -791,8 +793,8 @@ class Trashbin { * @return integer[] size of deleted files and number of deleted files */ public static function deleteExpiredFiles($files, $user) { - $application = new Application(); - $expiration = $application->getContainer()->query('Expiration'); + /** @var Expiration $expiration */ + $expiration = \OC::$server->query(Expiration::class); $size = 0; $count = 0; foreach ($files as $file) { diff --git a/apps/files_trashbin/tests/TrashbinTest.php b/apps/files_trashbin/tests/TrashbinTest.php index ae10e273075..22b6e87317c 100644 --- a/apps/files_trashbin/tests/TrashbinTest.php +++ b/apps/files_trashbin/tests/TrashbinTest.php @@ -67,7 +67,7 @@ class TrashbinTest extends \Test\TestCase { // clear share hooks \OC_Hook::clear('OCP\\Share'); \OC::registerShareHooks(); - $application = new \OCA\Files_Sharing\AppInfo\Application(); + $application = \OC::$server->query(\OCA\Files_Sharing\AppInfo\Application::class); $application->registerMountProviders(); //disable encryption @@ -76,7 +76,9 @@ class TrashbinTest extends \Test\TestCase { $config = \OC::$server->getConfig(); //configure trashbin self::$rememberRetentionObligation = $config->getSystemValue('trashbin_retention_obligation', \OCA\Files_Trashbin\Expiration::DEFAULT_RETENTION_OBLIGATION); - $config->setSystemValue('trashbin_retention_obligation', 'auto, 2'); + /** @var \OCA\Files_Trashbin\Expiration $expiration */ + $expiration = \OC::$server->query(\OCA\Files_Trashbin\Expiration::class); + $expiration->setRetentionObligation('auto, 2'); // register hooks \OCA\Files_Trashbin\Trashbin::registerHooks(); @@ -94,7 +96,9 @@ class TrashbinTest extends \Test\TestCase { $user->delete(); } - \OC::$server->getConfig()->setSystemValue('trashbin_retention_obligation', self::$rememberRetentionObligation); + /** @var \OCA\Files_Trashbin\Expiration $expiration */ + $expiration = \OC::$server->query(\OCA\Files_Trashbin\Expiration::class); + $expiration->setRetentionObligation(self::$rememberRetentionObligation); \OC_Hook::clear(); @@ -152,7 +156,9 @@ class TrashbinTest extends \Test\TestCase { */ public function testExpireOldFiles() { - $currentTime = time(); + /** @var \OCP\AppFramework\Utility\ITimeFactory $time */ + $time = \OC::$server->query(\OCP\AppFramework\Utility\ITimeFactory::class); + $currentTime = $time->getTime(); $expireAt = $currentTime - 2 * 24 * 60 * 60; $expiredDate = $currentTime - 3 * 24 * 60 * 60; @@ -684,9 +690,9 @@ class TrashbinForTesting extends \OCA\Files_Trashbin\Trashbin { * @param OCP\Files\FileInfo[] $files * @param integer $limit */ - public function dummyDeleteExpiredFiles($files, $limit) { + public function dummyDeleteExpiredFiles($files) { // dummy value for $retention_obligation because it is not needed here - return parent::deleteExpiredFiles($files, TrashbinTest::TEST_TRASHBIN_USER1, $limit, 0); + return parent::deleteExpiredFiles($files, TrashbinTest::TEST_TRASHBIN_USER1); } /** |