From 40edb426a3a6857598ff3f447a85e83e32ff0c32 Mon Sep 17 00:00:00 2001
From: Andrew Summers <18727110+summersab@users.noreply.github.com>
Date: Tue, 29 Aug 2023 18:50:12 -0500
Subject: Refactor `OC\Server::getRootFolder`

Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
---
 lib/private/Streamer.php                       | 3 ++-
 lib/private/legacy/OC_Files.php                | 5 +++--
 tests/lib/Preview/BackgroundCleanupJobTest.php | 4 ++--
 tests/lib/Preview/Provider.php                 | 3 ++-
 tests/lib/Share20/DefaultShareProviderTest.php | 6 +++---
 5 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/lib/private/Streamer.php b/lib/private/Streamer.php
index aafd3d95dfb..4a88278ed99 100644
--- a/lib/private/Streamer.php
+++ b/lib/private/Streamer.php
@@ -32,6 +32,7 @@ use OC\Files\Filesystem;
 use OCP\Files\File;
 use OCP\Files\Folder;
 use OCP\Files\InvalidPathException;
+use OCP\Files\IRootFolder;
 use OCP\Files\NotFoundException;
 use OCP\Files\NotPermittedException;
 use OCP\IRequest;
@@ -118,7 +119,7 @@ class Streamer {
 		// prevent absolute dirs
 		$internalDir = ltrim($internalDir, '/');
 
-		$userFolder = \OC::$server->getRootFolder()->get(Filesystem::getRoot());
+		$userFolder = \OC::$server->get(IRootFolder::class)->get(Filesystem::getRoot());
 		/** @var Folder $dirNode */
 		$dirNode = $userFolder->get($dir);
 		$files = $dirNode->getDirectoryListing();
diff --git a/lib/private/legacy/OC_Files.php b/lib/private/legacy/OC_Files.php
index ac0a2bbd0e9..ee3be30948b 100644
--- a/lib/private/legacy/OC_Files.php
+++ b/lib/private/legacy/OC_Files.php
@@ -46,6 +46,7 @@ use OC\Streamer;
 use OCP\Lock\ILockingProvider;
 use OCP\Files\Events\BeforeZipCreatedEvent;
 use OCP\Files\Events\BeforeDirectFileDownloadEvent;
+use OCP\Files\IRootFolder;
 use OCP\EventDispatcher\IEventDispatcher;
 
 /**
@@ -187,7 +188,7 @@ class OC_Files {
 				foreach ($files as $file) {
 					$file = $dir . '/' . $file;
 					if (\OC\Files\Filesystem::is_file($file)) {
-						$userFolder = \OC::$server->getRootFolder()->get(\OC\Files\Filesystem::getRoot());
+						$userFolder = \OC::$server->get(IRootFolder::class)->get(\OC\Files\Filesystem::getRoot());
 						$file = $userFolder->get($file);
 						if ($file instanceof \OC\Files\Node\File) {
 							try {
@@ -307,7 +308,7 @@ class OC_Files {
 		$file = null;
 
 		try {
-			$userFolder = \OC::$server->getRootFolder()->get(\OC\Files\Filesystem::getRoot());
+			$userFolder = \OC::$server->get(IRootFolder::class)->get(\OC\Files\Filesystem::getRoot());
 			$file = $userFolder->get($filename);
 			if (!$file instanceof \OC\Files\Node\File || !$file->isReadable()) {
 				http_response_code(403);
diff --git a/tests/lib/Preview/BackgroundCleanupJobTest.php b/tests/lib/Preview/BackgroundCleanupJobTest.php
index aa15ea7f562..3b95676e470 100644
--- a/tests/lib/Preview/BackgroundCleanupJobTest.php
+++ b/tests/lib/Preview/BackgroundCleanupJobTest.php
@@ -84,7 +84,7 @@ class BackgroundCleanupJobTest extends \Test\TestCase {
 
 		$this->connection = \OC::$server->getDatabaseConnection();
 		$this->previewManager = \OC::$server->getPreviewManager();
-		$this->rootFolder = \OC::$server->getRootFolder();
+		$this->rootFolder = \OC::$server->get(IRootFolder::class);
 		$this->mimeTypeLoader = \OC::$server->getMimeTypeLoader();
 		$this->timeFactory = \OCP\Server::get(ITimeFactory::class);
 	}
@@ -102,7 +102,7 @@ class BackgroundCleanupJobTest extends \Test\TestCase {
 
 	private function getRoot(): Root {
 		return new Root(
-			\OC::$server->getRootFolder(),
+			\OC::$server->get(IRootFolder::class),
 			\OC::$server->getSystemConfig()
 		);
 	}
diff --git a/tests/lib/Preview/Provider.php b/tests/lib/Preview/Provider.php
index a2e5170c82c..b4b50c873a5 100644
--- a/tests/lib/Preview/Provider.php
+++ b/tests/lib/Preview/Provider.php
@@ -22,6 +22,7 @@
 namespace Test\Preview;
 
 use OC\Files\Node\File;
+use OCP\Files\IRootFolder;
 
 abstract class Provider extends \Test\TestCase {
 	/** @var string */
@@ -137,7 +138,7 @@ abstract class Provider extends \Test\TestCase {
 	 * @return bool|\OCP\IImage
 	 */
 	private function getPreview($provider) {
-		$file = new File(\OC::$server->getRootFolder(), $this->rootView, $this->imgPath);
+		$file = new File(\OC::$server->get(IRootFolder::class), $this->rootView, $this->imgPath);
 		$preview = $provider->getThumbnail($file, $this->maxWidth, $this->maxHeight, $this->scalingUp);
 
 		if (get_class($this) === BitmapTest::class && $preview === null) {
diff --git a/tests/lib/Share20/DefaultShareProviderTest.php b/tests/lib/Share20/DefaultShareProviderTest.php
index 0ce96102a30..afa428014f8 100644
--- a/tests/lib/Share20/DefaultShareProviderTest.php
+++ b/tests/lib/Share20/DefaultShareProviderTest.php
@@ -2514,7 +2514,7 @@ class DefaultShareProviderTest extends \Test\TestCase {
 	public function testGetSharesInFolder() {
 		$userManager = \OC::$server->getUserManager();
 		$groupManager = \OC::$server->getGroupManager();
-		$rootFolder = \OC::$server->getRootFolder();
+		$rootFolder = \OC::$server->get(IRootFolder::class);
 
 		$provider = new DefaultShareProvider(
 			$this->dbConn,
@@ -2612,7 +2612,7 @@ class DefaultShareProviderTest extends \Test\TestCase {
 	public function testGetAccessListNoCurrentAccessRequired() {
 		$userManager = \OC::$server->getUserManager();
 		$groupManager = \OC::$server->getGroupManager();
-		$rootFolder = \OC::$server->getRootFolder();
+		$rootFolder = \OC::$server->get(IRootFolder::class);
 
 		$provider = new DefaultShareProvider(
 			$this->dbConn,
@@ -2708,7 +2708,7 @@ class DefaultShareProviderTest extends \Test\TestCase {
 	public function testGetAccessListCurrentAccessRequired() {
 		$userManager = \OC::$server->getUserManager();
 		$groupManager = \OC::$server->getGroupManager();
-		$rootFolder = \OC::$server->getRootFolder();
+		$rootFolder = \OC::$server->get(IRootFolder::class);
 
 		$provider = new DefaultShareProvider(
 			$this->dbConn,
-- 
cgit v1.2.3


From 572faa1224b0b6571e40b9ef2c350514b06b7151 Mon Sep 17 00:00:00 2001
From: Robin Appelman <robin@icewind.nl>
Date: Fri, 1 Dec 2023 15:55:01 +0100
Subject: use correct mode constant of files:scan's --path option

Signed-off-by: Robin Appelman <robin@icewind.nl>
---
 apps/files/lib/Command/Scan.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php
index 31c410241cf..600343a4528 100644
--- a/apps/files/lib/Command/Scan.php
+++ b/apps/files/lib/Command/Scan.php
@@ -90,7 +90,7 @@ class Scan extends Base {
 			->addOption(
 				'path',
 				'p',
-				InputArgument::OPTIONAL,
+				InputOption::VALUE_REQUIRED,
 				'limit rescan to this path, eg. --path="/alice/files/Music", the user_id is determined by the path and the user_id parameter and --all are ignored'
 			)
 			->addOption(
-- 
cgit v1.2.3


From f9ce6bfdff10665d40400c80662e9b29a00d8b3f Mon Sep 17 00:00:00 2001
From: Andrew Summers <18727110+summersab@users.noreply.github.com>
Date: Tue, 29 Aug 2023 18:11:00 -0500
Subject: Refactor `OC\Server::getHasher`

Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
---
 lib/private/Security/Hasher.php                               | 4 ++--
 lib/private/Share20/ProviderFactory.php                       | 3 ++-
 lib/private/User/Database.php                                 | 7 ++++---
 lib/public/Security/IHasher.php                               | 4 ++--
 tests/lib/Authentication/Token/PublicKeyTokenProviderTest.php | 2 +-
 5 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/lib/private/Security/Hasher.php b/lib/private/Security/Hasher.php
index 23747751053..196b58df2ce 100644
--- a/lib/private/Security/Hasher.php
+++ b/lib/private/Security/Hasher.php
@@ -42,10 +42,10 @@ use OCP\Security\IHasher;
  *
  * Usage:
  * // Hashing a message
- * $hash = \OC::$server->getHasher()->hash('MessageToHash');
+ * $hash = \OC::$server->get(\OCP\Security\IHasher::class)->hash('MessageToHash');
  * // Verifying a message - $newHash will contain the newly calculated hash
  * $newHash = null;
- * var_dump(\OC::$server->getHasher()->verify('a', '86f7e437faa5a7fce15d1ddcb9eaeaea377667b8', $newHash));
+ * var_dump(\OC::$server->get(\OCP\Security\IHasher::class)->verify('a', '86f7e437faa5a7fce15d1ddcb9eaeaea377667b8', $newHash));
  * var_dump($newHash);
  *
  * @package OC\Security
diff --git a/lib/private/Share20/ProviderFactory.php b/lib/private/Share20/ProviderFactory.php
index dbf1b21dabe..9cf22ce91bb 100644
--- a/lib/private/Share20/ProviderFactory.php
+++ b/lib/private/Share20/ProviderFactory.php
@@ -45,6 +45,7 @@ use OCP\AppFramework\Utility\ITimeFactory;
 use OCP\Defaults;
 use OCP\EventDispatcher\IEventDispatcher;
 use OCP\IServerContainer;
+use OCP\Security\IHasher;
 use OCP\Share\IManager;
 use OCP\Share\IProviderFactory;
 use OCP\Share\IShare;
@@ -199,7 +200,7 @@ class ProviderFactory implements IProviderFactory {
 				$this->serverContainer->getActivityManager(),
 				$settingsManager,
 				$this->serverContainer->query(Defaults::class),
-				$this->serverContainer->getHasher(),
+				$this->serverContainer->get(IHasher::class),
 				$this->serverContainer->get(IEventDispatcher::class),
 				$this->serverContainer->get(IManager::class)
 			);
diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php
index 9ef1bc67a58..55d0183ce52 100644
--- a/lib/private/User/Database.php
+++ b/lib/private/User/Database.php
@@ -50,6 +50,7 @@ use OCP\Cache\CappedMemoryCache;
 use OCP\EventDispatcher\IEventDispatcher;
 use OCP\IDBConnection;
 use OCP\Security\Events\ValidatePasswordPolicyEvent;
+use OCP\Security\IHasher;
 use OCP\User\Backend\ABackend;
 use OCP\User\Backend\ICheckPasswordBackend;
 use OCP\User\Backend\ICountUsersBackend;
@@ -130,7 +131,7 @@ class Database extends ABackend implements
 				$qb->insert($this->table)
 					->values([
 						'uid' => $qb->createNamedParameter($uid),
-						'password' => $qb->createNamedParameter(\OC::$server->getHasher()->hash($password)),
+						'password' => $qb->createNamedParameter(\OC::$server->get(IHasher::class)->hash($password)),
 						'uid_lower' => $qb->createNamedParameter(mb_strtolower($uid)),
 					]);
 
@@ -197,7 +198,7 @@ class Database extends ABackend implements
 		if ($this->userExists($uid)) {
 			$this->eventDispatcher->dispatchTyped(new ValidatePasswordPolicyEvent($password));
 
-			$hasher = \OC::$server->getHasher();
+			$hasher = \OC::$server->get(IHasher::class);
 			$hashedPassword = $hasher->hash($password);
 
 			$return = $this->updatePassword($uid, $hashedPassword);
@@ -353,7 +354,7 @@ class Database extends ABackend implements
 		if ($found && is_array($this->cache[$loginName])) {
 			$storedHash = $this->cache[$loginName]['password'];
 			$newHash = '';
-			if (\OC::$server->getHasher()->verify($password, $storedHash, $newHash)) {
+			if (\OC::$server->get(IHasher::class)->verify($password, $storedHash, $newHash)) {
 				if (!empty($newHash)) {
 					$this->updatePassword($loginName, $newHash);
 				}
diff --git a/lib/public/Security/IHasher.php b/lib/public/Security/IHasher.php
index 7c4d743002c..f64bb064422 100644
--- a/lib/public/Security/IHasher.php
+++ b/lib/public/Security/IHasher.php
@@ -37,10 +37,10 @@ namespace OCP\Security;
  *
  * Usage:
  * // Hashing a message
- * $hash = \OC::$server->getHasher()->hash('MessageToHash');
+ * $hash = \OC::$server->get(\OCP\Security\IHasher::class)->hash('MessageToHash');
  * // Verifying a message - $newHash will contain the newly calculated hash
  * $newHash = null;
- * var_dump(\OC::$server->getHasher()->verify('a', '86f7e437faa5a7fce15d1ddcb9eaeaea377667b8', $newHash));
+ * var_dump(\OC::$server->get(\OCP\Security\IHasher::class)->verify('a', '86f7e437faa5a7fce15d1ddcb9eaeaea377667b8', $newHash));
  * var_dump($newHash);
  *
  * @since 8.0.0
diff --git a/tests/lib/Authentication/Token/PublicKeyTokenProviderTest.php b/tests/lib/Authentication/Token/PublicKeyTokenProviderTest.php
index 69894f14855..99d058f22a6 100644
--- a/tests/lib/Authentication/Token/PublicKeyTokenProviderTest.php
+++ b/tests/lib/Authentication/Token/PublicKeyTokenProviderTest.php
@@ -70,7 +70,7 @@ class PublicKeyTokenProviderTest extends TestCase {
 		parent::setUp();
 
 		$this->mapper = $this->createMock(PublicKeyTokenMapper::class);
-		$this->hasher = \OC::$server->getHasher();
+		$this->hasher = \OC::$server->get(IHasher::class);
 		$this->crypto = \OC::$server->getCrypto();
 		$this->config = $this->createMock(IConfig::class);
 		$this->config->method('getSystemValueInt')
-- 
cgit v1.2.3


From cd585885b83fef458e74b472b70683030da4ab93 Mon Sep 17 00:00:00 2001
From: Andrew Summers <18727110+summersab@users.noreply.github.com>
Date: Tue, 29 Aug 2023 17:20:33 -0500
Subject: Refactor `OC\Server::getLockdownManager`

Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
---
 lib/private/Server.php                     | 2 +-
 tests/lib/Lockdown/Filesystem/NoFSTest.php | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/private/Server.php b/lib/private/Server.php
index 76c73383b2e..a8b066263bc 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -546,7 +546,7 @@ class Server extends ServerContainer implements IServerContainer {
 				$provider,
 				$c->get(\OCP\IConfig::class),
 				$c->get(ISecureRandom::class),
-				$c->getLockdownManager(),
+				$c->get('LockdownManager'),
 				$c->get(LoggerInterface::class),
 				$c->get(IEventDispatcher::class)
 			);
diff --git a/tests/lib/Lockdown/Filesystem/NoFSTest.php b/tests/lib/Lockdown/Filesystem/NoFSTest.php
index 4c0645447ec..adffb01758c 100644
--- a/tests/lib/Lockdown/Filesystem/NoFSTest.php
+++ b/tests/lib/Lockdown/Filesystem/NoFSTest.php
@@ -39,7 +39,7 @@ class NoFSTest extends \Test\TestCase {
 		$token->setScope([
 			'filesystem' => true
 		]);
-		\OC::$server->getLockdownManager()->setToken($token);
+		\OC::$server->get('LockdownManager')->setToken($token);
 		parent::tearDown();
 	}
 
@@ -50,7 +50,7 @@ class NoFSTest extends \Test\TestCase {
 			'filesystem' => false
 		]);
 
-		\OC::$server->getLockdownManager()->setToken($token);
+		\OC::$server->get('LockdownManager')->setToken($token);
 		$this->createUser('foo', 'var');
 	}
 
-- 
cgit v1.2.3


From 45eb4a839d57cca6467df5256785e698ac473ef3 Mon Sep 17 00:00:00 2001
From: Andrew Summers <18727110+summersab@users.noreply.github.com>
Date: Tue, 29 Aug 2023 18:16:45 -0500
Subject: Refactor `OC\Server::getLockingProvider`

Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
---
 lib/private/Files/Cache/Scanner.php | 2 +-
 lib/private/Files/Utils/Scanner.php | 3 ++-
 lib/private/Files/View.php          | 2 +-
 tests/lib/Files/ViewTest.php        | 6 +++---
 tests/lib/TestCase.php              | 5 +++--
 5 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/lib/private/Files/Cache/Scanner.php b/lib/private/Files/Cache/Scanner.php
index 0c82e21e30d..1c66f3af8d2 100644
--- a/lib/private/Files/Cache/Scanner.php
+++ b/lib/private/Files/Cache/Scanner.php
@@ -96,7 +96,7 @@ class Scanner extends BasicEmitter implements IScanner {
 		$this->storageId = $this->storage->getId();
 		$this->cache = $storage->getCache();
 		$this->cacheActive = !\OC::$server->getConfig()->getSystemValueBool('filesystem_cache_readonly', false);
-		$this->lockingProvider = \OC::$server->getLockingProvider();
+		$this->lockingProvider = \OC::$server->get(ILockingProvider::class);
 		$this->connection = \OC::$server->get(IDBConnection::class);
 	}
 
diff --git a/lib/private/Files/Utils/Scanner.php b/lib/private/Files/Utils/Scanner.php
index 6348427cb3b..ae6a0a33d2b 100644
--- a/lib/private/Files/Utils/Scanner.php
+++ b/lib/private/Files/Utils/Scanner.php
@@ -50,6 +50,7 @@ use OCP\Files\NotFoundException;
 use OCP\Files\Storage\IStorage;
 use OCP\Files\StorageNotAvailableException;
 use OCP\IDBConnection;
+use OCP\Lock\ILockingProvider;
 use Psr\Log\LoggerInterface;
 
 /**
@@ -100,7 +101,7 @@ class Scanner extends PublicEmitter {
 		$this->dispatcher = $dispatcher;
 		$this->logger = $logger;
 		// when DB locking is used, no DB transactions will be used
-		$this->useTransaction = !(\OC::$server->getLockingProvider() instanceof DBLockingProvider);
+		$this->useTransaction = !(\OC::$server->get(ILockingProvider::class) instanceof DBLockingProvider);
 	}
 
 	/**
diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php
index c80b42134c4..36d7002a269 100644
--- a/lib/private/Files/View.php
+++ b/lib/private/Files/View.php
@@ -106,7 +106,7 @@ class View {
 		}
 
 		$this->fakeRoot = $root;
-		$this->lockingProvider = \OC::$server->getLockingProvider();
+		$this->lockingProvider = \OC::$server->get(ILockingProvider::class);
 		$this->lockingEnabled = !($this->lockingProvider instanceof \OC\Lock\NoopLockingProvider);
 		$this->userManager = \OC::$server->getUserManager();
 		$this->logger = \OC::$server->get(LoggerInterface::class);
diff --git a/tests/lib/Files/ViewTest.php b/tests/lib/Files/ViewTest.php
index b9dd49d71fe..c4e17fd3118 100644
--- a/tests/lib/Files/ViewTest.php
+++ b/tests/lib/Files/ViewTest.php
@@ -1388,7 +1388,7 @@ class ViewTest extends \Test\TestCase {
 	 * Test that locks are on mount point paths instead of mount root
 	 */
 	public function testLockLocalMountPointPathInsteadOfStorageRoot() {
-		$lockingProvider = \OC::$server->getLockingProvider();
+		$lockingProvider = \OC::$server->get(ILockingProvider::class);
 		$view = new View('/testuser/files/');
 		$storage = new Temporary([]);
 		Filesystem::mount($storage, [], '/');
@@ -1418,7 +1418,7 @@ class ViewTest extends \Test\TestCase {
 	 * Test that locks are on mount point paths and also mount root when requested
 	 */
 	public function testLockStorageRootButNotLocalMountPoint() {
-		$lockingProvider = \OC::$server->getLockingProvider();
+		$lockingProvider = \OC::$server->get(ILockingProvider::class);
 		$view = new View('/testuser/files/');
 		$storage = new Temporary([]);
 		Filesystem::mount($storage, [], '/');
@@ -1448,7 +1448,7 @@ class ViewTest extends \Test\TestCase {
 	 * Test that locks are on mount point paths and also mount root when requested
 	 */
 	public function testLockMountPointPathFailReleasesBoth() {
-		$lockingProvider = \OC::$server->getLockingProvider();
+		$lockingProvider = \OC::$server->get(ILockingProvider::class);
 		$view = new View('/testuser/files/');
 		$storage = new Temporary([]);
 		Filesystem::mount($storage, [], '/');
diff --git a/tests/lib/TestCase.php b/tests/lib/TestCase.php
index db124bd6823..4ca00901762 100644
--- a/tests/lib/TestCase.php
+++ b/tests/lib/TestCase.php
@@ -38,6 +38,7 @@ use OCP\Defaults;
 use OCP\IConfig;
 use OCP\IDBConnection;
 use OCP\IL10N;
+use OCP\Lock\ILockingProvider;
 use OCP\Security\ISecureRandom;
 use Psr\Log\LoggerInterface;
 
@@ -197,7 +198,7 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase {
 		// further cleanup
 		$hookExceptions = \OC_Hook::$thrownExceptions;
 		\OC_Hook::$thrownExceptions = [];
-		\OC::$server->getLockingProvider()->releaseAll();
+		\OC::$server->get(ILockingProvider::class)->releaseAll();
 		if (!empty($hookExceptions)) {
 			throw $hookExceptions[0];
 		}
@@ -418,7 +419,7 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase {
 	 * Clean up the list of locks
 	 */
 	protected static function tearDownAfterClassCleanStrayLocks() {
-		\OC::$server->getLockingProvider()->releaseAll();
+		\OC::$server->get(ILockingProvider::class)->releaseAll();
 	}
 
 	/**
-- 
cgit v1.2.3


From fe5eead3ac70b523993e0cc700119e6640c8d6c5 Mon Sep 17 00:00:00 2001
From: Andrew Summers <18727110+summersab@users.noreply.github.com>
Date: Tue, 29 Aug 2023 18:14:58 -0500
Subject: Refactor `OC\Server::getLazyRootFolder`

Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
---
 lib/private/Share20/ProviderFactory.php | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/lib/private/Share20/ProviderFactory.php b/lib/private/Share20/ProviderFactory.php
index dbf1b21dabe..6d052d04f01 100644
--- a/lib/private/Share20/ProviderFactory.php
+++ b/lib/private/Share20/ProviderFactory.php
@@ -44,6 +44,7 @@ use OCA\Talk\Share\RoomShareProvider;
 use OCP\AppFramework\Utility\ITimeFactory;
 use OCP\Defaults;
 use OCP\EventDispatcher\IEventDispatcher;
+use OCP\Files\IRootFolder;
 use OCP\IServerContainer;
 use OCP\Share\IManager;
 use OCP\Share\IProviderFactory;
@@ -100,7 +101,7 @@ class ProviderFactory implements IProviderFactory {
 				$this->serverContainer->getDatabaseConnection(),
 				$this->serverContainer->getUserManager(),
 				$this->serverContainer->getGroupManager(),
-				$this->serverContainer->getLazyRootFolder(),
+				$this->serverContainer->get(IRootFolder::class),
 				$this->serverContainer->getMailer(),
 				$this->serverContainer->query(Defaults::class),
 				$this->serverContainer->getL10NFactory(),
@@ -156,7 +157,7 @@ class ProviderFactory implements IProviderFactory {
 				$notifications,
 				$tokenHandler,
 				$l,
-				$this->serverContainer->getLazyRootFolder(),
+				$this->serverContainer->get(IRootFolder::class),
 				$this->serverContainer->getConfig(),
 				$this->serverContainer->getUserManager(),
 				$this->serverContainer->getCloudIdManager(),
@@ -191,7 +192,7 @@ class ProviderFactory implements IProviderFactory {
 				$this->serverContainer->getDatabaseConnection(),
 				$this->serverContainer->getSecureRandom(),
 				$this->serverContainer->getUserManager(),
-				$this->serverContainer->getLazyRootFolder(),
+				$this->serverContainer->get(IRootFolder::class),
 				$this->serverContainer->getL10N('sharebymail'),
 				$this->serverContainer->get(LoggerInterface::class),
 				$this->serverContainer->getMailer(),
@@ -233,7 +234,7 @@ class ProviderFactory implements IProviderFactory {
 				$this->serverContainer->getDatabaseConnection(),
 				$this->serverContainer->getSecureRandom(),
 				$this->serverContainer->getUserManager(),
-				$this->serverContainer->getLazyRootFolder(),
+				$this->serverContainer->get(IRootFolder::class),
 				$this->serverContainer->getL10N('circles'),
 				$this->serverContainer->getLogger(),
 				$this->serverContainer->getURLGenerator()
-- 
cgit v1.2.3


From c0f12d769142562349f40340a7c7f40daff63349 Mon Sep 17 00:00:00 2001
From: Andrew Summers <18727110+summersab@users.noreply.github.com>
Date: Tue, 29 Aug 2023 18:53:01 -0500
Subject: Refactor `OC\Server::getGetRedisFactory`

Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
---
 lib/private/Memcache/Redis.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/private/Memcache/Redis.php b/lib/private/Memcache/Redis.php
index 5e9554eb94e..97b6d41ea5e 100644
--- a/lib/private/Memcache/Redis.php
+++ b/lib/private/Memcache/Redis.php
@@ -70,7 +70,7 @@ class Redis extends Cache implements IMemcacheTTL {
 	 */
 	public function getCache() {
 		if (is_null(self::$cache)) {
-			self::$cache = \OC::$server->getGetRedisFactory()->getInstance();
+			self::$cache = \OC::$server->get('RedisFactory')->getInstance();
 		}
 		return self::$cache;
 	}
@@ -209,7 +209,7 @@ class Redis extends Cache implements IMemcacheTTL {
 	}
 
 	public static function isAvailable(): bool {
-		return \OC::$server->getGetRedisFactory()->isAvailable();
+		return \OC::$server->get('RedisFactory')->isAvailable();
 	}
 
 	protected function evalLua(string $scriptName, array $keys, array $args) {
-- 
cgit v1.2.3


From 0047789580ae4d2398979dde9d883283984d37e4 Mon Sep 17 00:00:00 2001
From: Andrew Summers <18727110+summersab@users.noreply.github.com>
Date: Tue, 29 Aug 2023 17:18:12 -0500
Subject: Refactor `OC\Server::getTwoFactorAuthManager`

Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
---
 lib/private/User/Session.php   | 3 ++-
 lib/private/legacy/OC_JSON.php | 5 ++++-
 lib/private/legacy/OC_Util.php | 3 ++-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php
index ab6ec9f38d3..f2c0010b6be 100644
--- a/lib/private/User/Session.php
+++ b/lib/private/User/Session.php
@@ -43,6 +43,7 @@ use OC\Authentication\Exceptions\PasswordlessTokenException;
 use OC\Authentication\Exceptions\PasswordLoginForbiddenException;
 use OC\Authentication\Token\IProvider;
 use OC\Authentication\Token\IToken;
+use OC\Authentication\TwoFactorAuth\Manager as TwoFactorAuthManager;
 use OC\Hooks\Emitter;
 use OC\Hooks\PublicEmitter;
 use OC_User;
@@ -524,7 +525,7 @@ class Session implements IUserSession, Emitter {
 			$user = $users[0];
 		}
 		// DI not possible due to cyclic dependencies :'-/
-		return OC::$server->getTwoFactorAuthManager()->isTwoFactorAuthenticated($user);
+		return OC::$server->get(TwoFactorAuthManager::class)->isTwoFactorAuthenticated($user);
 	}
 
 	/**
diff --git a/lib/private/legacy/OC_JSON.php b/lib/private/legacy/OC_JSON.php
index b6791fe4b85..5188a92fe1d 100644
--- a/lib/private/legacy/OC_JSON.php
+++ b/lib/private/legacy/OC_JSON.php
@@ -27,6 +27,9 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>
  *
  */
+
+use OC\Authentication\TwoFactorAuth\Manager as TwoFactorAuthManager;
+
 class OC_JSON {
 	/**
 	 * Check if the app is enabled, send json error msg if not
@@ -48,7 +51,7 @@ class OC_JSON {
 	 * @suppress PhanDeprecatedFunction
 	 */
 	public static function checkLoggedIn() {
-		$twoFactorAuthManger = \OC::$server->getTwoFactorAuthManager();
+		$twoFactorAuthManger = \OC::$server->get(TwoFactorAuthManager::class);
 		if (!\OC::$server->getUserSession()->isLoggedIn()
 			|| $twoFactorAuthManger->needsSecondFactor(\OC::$server->getUserSession()->getUser())) {
 			$l = \OC::$server->getL10N('lib');
diff --git a/lib/private/legacy/OC_Util.php b/lib/private/legacy/OC_Util.php
index 42a0d9450b5..09d0719ff2b 100644
--- a/lib/private/legacy/OC_Util.php
+++ b/lib/private/legacy/OC_Util.php
@@ -65,6 +65,7 @@
  */
 
 use bantu\IniGetWrapper\IniGetWrapper;
+use OC\Authentication\TwoFactorAuth\Manager as TwoFactorAuthManager;
 use OC\Files\SetupManager;
 use OCP\Files\Template\ITemplateManager;
 use OCP\IConfig;
@@ -785,7 +786,7 @@ class OC_Util {
 			exit();
 		}
 		// Redirect to 2FA challenge selection if 2FA challenge was not solved yet
-		if (\OC::$server->getTwoFactorAuthManager()->needsSecondFactor(\OC::$server->getUserSession()->getUser())) {
+		if (\OC::$server->get(TwoFactorAuthManager::class)->needsSecondFactor(\OC::$server->getUserSession()->getUser())) {
 			header('Location: ' . \OC::$server->getURLGenerator()->linkToRoute('core.TwoFactorChallenge.selectChallenge'));
 			exit();
 		}
-- 
cgit v1.2.3