diff options
Diffstat (limited to 'lib/private/Server.php')
-rw-r--r-- | lib/private/Server.php | 835 |
1 files changed, 113 insertions, 722 deletions
diff --git a/lib/private/Server.php b/lib/private/Server.php index bcdf482f02d..22cd13438b8 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -1,4 +1,5 @@ <?php + /** * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2016 ownCloud, Inc. @@ -7,11 +8,11 @@ namespace OC; use bantu\IniGetWrapper\IniGetWrapper; +use NCU\Security\Signature\ISignatureManager; use OC\Accounts\AccountManager; use OC\App\AppManager; use OC\App\AppStore\Bundles\BundleFetcher; use OC\App\AppStore\Fetcher\AppFetcher; -use OC\App\AppStore\Fetcher\CategoryFetcher; use OC\AppFramework\Bootstrap\Coordinator; use OC\AppFramework\Http\Request; use OC\AppFramework\Http\RequestId; @@ -44,6 +45,7 @@ use OC\Files\Cache\FileAccess; use OC\Files\Config\MountProviderCollection; use OC\Files\Config\UserMountCache; use OC\Files\Config\UserMountCacheListener; +use OC\Files\Conversion\ConversionManager; use OC\Files\Lock\LockManager; use OC\Files\Mount\CacheMountProvider; use OC\Files\Mount\LocalHomeMountProvider; @@ -53,6 +55,7 @@ use OC\Files\Mount\RootMountProvider; use OC\Files\Node\HookConnector; use OC\Files\Node\LazyRoot; use OC\Files\Node\Root; +use OC\Files\ObjectStore\PrimaryObjectStoreConfig; use OC\Files\SetupManager; use OC\Files\Storage\StorageFactory; use OC\Files\Template\TemplateManager; @@ -100,8 +103,10 @@ use OC\Security\CSP\ContentSecurityPolicyNonceManager; use OC\Security\CSRF\CsrfTokenManager; use OC\Security\CSRF\TokenStorage\SessionStorage; use OC\Security\Hasher; +use OC\Security\Ip\RemoteAddress; use OC\Security\RateLimiting\Limiter; use OC\Security\SecureRandom; +use OC\Security\Signature\SignatureManager; use OC\Security\TrustedDomainHelper; use OC\Security\VerificationToken\VerificationToken; use OC\Session\CryptoWrapper; @@ -111,7 +116,6 @@ use OC\Share20\ProviderFactory; use OC\Share20\ShareHelper; use OC\SpeechToText\SpeechToTextManager; use OC\SystemTag\ManagerFactory as SystemTagManagerFactory; -use OC\Tagging\TagMapper; use OC\Talk\Broker; use OC\Teams\TeamManager; use OC\Template\JSCombiner; @@ -121,10 +125,6 @@ use OC\User\DisplayNameCache; use OC\User\Listeners\BeforeUserDeletedListener; use OC\User\Listeners\UserChangedListener; use OC\User\Session; -use OCA\Files_External\Service\BackendService; -use OCA\Files_External\Service\GlobalStoragesService; -use OCA\Files_External\Service\UserGlobalStoragesService; -use OCA\Files_External\Service\UserStoragesService; use OCA\Theming\ImageManager; use OCA\Theming\Service\BackgroundService; use OCA\Theming\ThemingDefaults; @@ -135,10 +135,10 @@ use OCP\AppFramework\Utility\ITimeFactory; use OCP\Authentication\LoginCredentials\IStore; use OCP\Authentication\Token\IProvider as OCPIProvider; use OCP\BackgroundJob\IJobList; -use OCP\Collaboration\AutoComplete\IManager; use OCP\Collaboration\Reference\IReferenceManager; use OCP\Command\IBus; use OCP\Comments\ICommentsManager; +use OCP\Config\IUserConfig; use OCP\Contacts\ContactsMenu\IActionFactory; use OCP\Contacts\ContactsMenu\IContactsStore; use OCP\Defaults; @@ -153,6 +153,7 @@ use OCP\Federation\ICloudIdManager; use OCP\Files\Cache\IFileAccess; use OCP\Files\Config\IMountProviderCollection; use OCP\Files\Config\IUserMountCache; +use OCP\Files\Conversion\IConversionManager; use OCP\Files\IMimeTypeDetector; use OCP\Files\IMimeTypeLoader; use OCP\Files\IRootFolder; @@ -162,7 +163,6 @@ use OCP\Files\Storage\IStorageFactory; use OCP\Files\Template\ITemplateManager; use OCP\FilesMetadata\IFilesMetadataManager; use OCP\FullTextSearch\IFullTextSearchManager; -use OCP\GlobalScale\IConfig; use OCP\Group\ISubAdmin; use OCP\Http\Client\IClientService; use OCP\IAppConfig; @@ -178,16 +178,13 @@ use OCP\IEventSourceFactory; use OCP\IGroupManager; use OCP\IInitialStateService; use OCP\IL10N; -use OCP\ILogger; use OCP\INavigationManager; use OCP\IPhoneNumberUtil; use OCP\IPreview; use OCP\IRequest; use OCP\IRequestId; -use OCP\ISearch; use OCP\IServerContainer; use OCP\ISession; -use OCP\ITagManager; use OCP\ITempManager; use OCP\IURLGenerator; use OCP\IUserManager; @@ -199,6 +196,7 @@ use OCP\Lock\ILockingProvider; use OCP\Lockdown\ILockdownManager; use OCP\Log\ILogFactory; use OCP\Mail\IMailer; +use OCP\OCM\ICapabilityAwareOCMProvider; use OCP\OCM\IOCMDiscoveryService; use OCP\OCM\IOCMProvider; use OCP\Preview\IMimeIconProvider; @@ -206,17 +204,19 @@ use OCP\Profile\IProfileManager; use OCP\Profiler\IProfiler; use OCP\Remote\Api\IApiFactory; use OCP\Remote\IInstanceFactory; +use OCP\RichObjectStrings\IRichTextFormatter; use OCP\RichObjectStrings\IValidator; use OCP\Route\IRouter; use OCP\Security\Bruteforce\IThrottler; -use OCP\Security\IContentSecurityPolicyManager; use OCP\Security\ICredentialsManager; use OCP\Security\ICrypto; use OCP\Security\IHasher; +use OCP\Security\Ip\IRemoteAddress; use OCP\Security\ISecureRandom; use OCP\Security\ITrustedDomainHelper; use OCP\Security\RateLimiting\ILimiter; use OCP\Security\VerificationToken\IVerificationToken; +use OCP\ServerVersion; use OCP\Settings\IDeclarativeManager; use OCP\SetupCheck\ISetupCheckManager; use OCP\Share\IProviderFactory; @@ -237,7 +237,6 @@ use OCP\User\Events\UserLoggedInEvent; use OCP\User\Events\UserLoggedInWithCookieEvent; use OCP\User\Events\UserLoggedOutEvent; use OCP\User\IAvailabilityCoordinator; -use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; @@ -267,28 +266,21 @@ class Server extends ServerContainer implements IServerContainer { $this->registerService(ContainerInterface::class, function (ContainerInterface $c) { return $c; }); - $this->registerService(\OCP\IServerContainer::class, function (ContainerInterface $c) { - return $c; - }); + $this->registerDeprecatedAlias(\OCP\IServerContainer::class, ContainerInterface::class); $this->registerAlias(\OCP\Calendar\IManager::class, \OC\Calendar\Manager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('CalendarManager', \OC\Calendar\Manager::class); $this->registerAlias(\OCP\Calendar\Resource\IManager::class, \OC\Calendar\Resource\Manager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('CalendarResourceBackendManager', \OC\Calendar\Resource\Manager::class); $this->registerAlias(\OCP\Calendar\Room\IManager::class, \OC\Calendar\Room\Manager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('CalendarRoomBackendManager', \OC\Calendar\Room\Manager::class); $this->registerAlias(\OCP\Contacts\IManager::class, \OC\ContactsManager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('ContactsManager', \OCP\Contacts\IManager::class); + + $this->registerAlias(\OCP\ContextChat\IContentManager::class, \OC\ContextChat\ContentManager::class); $this->registerAlias(\OCP\DirectEditing\IManager::class, \OC\DirectEditing\Manager::class); $this->registerAlias(ITemplateManager::class, TemplateManager::class); + $this->registerAlias(\OCP\Template\ITemplateManager::class, \OC\Template\TemplateManager::class); $this->registerAlias(IActionFactory::class, ActionFactory::class); @@ -313,8 +305,6 @@ class Server extends ServerContainer implements IServerContainer { $c->get(IMagickSupport::class) ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('PreviewManager', IPreview::class); $this->registerAlias(IMimeIconProvider::class, MimeIconProvider::class); $this->registerService(\OC\Preview\Watcher::class, function (ContainerInterface $c) { @@ -330,7 +320,7 @@ class Server extends ServerContainer implements IServerContainer { return new Profiler($c->get(SystemConfig::class)); }); - $this->registerService(\OCP\Encryption\IManager::class, function (Server $c): Encryption\Manager { + $this->registerService(Encryption\Manager::class, function (Server $c): Encryption\Manager { $view = new View(); $util = new Encryption\Util( $view, @@ -347,11 +337,8 @@ class Server extends ServerContainer implements IServerContainer { new ArrayCache() ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('EncryptionManager', \OCP\Encryption\IManager::class); + $this->registerAlias(\OCP\Encryption\IManager::class, Encryption\Manager::class); - /** @deprecated 21.0.0 */ - $this->registerDeprecatedAlias('EncryptionFileHelper', IFile::class); $this->registerService(IFile::class, function (ContainerInterface $c) { $util = new Encryption\Util( new View(), @@ -366,8 +353,6 @@ class Server extends ServerContainer implements IServerContainer { ); }); - /** @deprecated 21.0.0 */ - $this->registerDeprecatedAlias('EncryptionKeyStorage', IStorage::class); $this->registerService(IStorage::class, function (ContainerInterface $c) { $view = new View(); $util = new Encryption\Util( @@ -384,12 +369,8 @@ class Server extends ServerContainer implements IServerContainer { $c->get(\OCP\IConfig::class) ); }); - /** @deprecated 20.0.0 */ - $this->registerDeprecatedAlias('TagMapper', TagMapper::class); $this->registerAlias(\OCP\ITagManager::class, TagManager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('TagManager', \OCP\ITagManager::class); $this->registerService('SystemTagManagerFactory', function (ContainerInterface $c) { /** @var \OCP\IConfig $config */ @@ -425,7 +406,8 @@ class Server extends ServerContainer implements IServerContainer { $previewConnector = new \OC\Preview\WatcherConnector( $root, - $c->get(SystemConfig::class) + $c->get(SystemConfig::class), + $this->get(IEventDispatcher::class) ); $previewConnector->connectWatcher(); @@ -440,19 +422,12 @@ class Server extends ServerContainer implements IServerContainer { ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('SystemTagObjectMapper', ISystemTagObjectMapper::class); - $this->registerService(IRootFolder::class, function (ContainerInterface $c) { return new LazyRoot(function () use ($c) { return $c->get('RootFolder'); }); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('LazyRootFolder', IRootFolder::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('UserManager', \OC\User\Manager::class); $this->registerAlias(\OCP\IUserManager::class, \OC\User\Manager::class); $this->registerService(DisplayNameCache::class, function (ContainerInterface $c) { @@ -464,12 +439,11 @@ class Server extends ServerContainer implements IServerContainer { $this->get(IUserManager::class), $this->get(IEventDispatcher::class), $this->get(LoggerInterface::class), - $this->get(ICacheFactory::class) + $this->get(ICacheFactory::class), + $this->get(IRemoteAddress::class), ); return $groupManager; }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('GroupManager', \OCP\IGroupManager::class); $this->registerService(Store::class, function (ContainerInterface $c) { $session = $c->get(ISession::class); @@ -479,7 +453,8 @@ class Server extends ServerContainer implements IServerContainer { $tokenProvider = null; } $logger = $c->get(LoggerInterface::class); - return new Store($session, $logger, $tokenProvider); + $crypto = $c->get(ICrypto::class); + return new Store($session, $logger, $crypto, $tokenProvider); }); $this->registerAlias(IStore::class, Store::class); $this->registerAlias(IProvider::class, Authentication\Token\Manager::class); @@ -487,7 +462,7 @@ class Server extends ServerContainer implements IServerContainer { $this->registerService(\OC\User\Session::class, function (Server $c) { $manager = $c->get(IUserManager::class); - $session = new \OC\Session\Memory(''); + $session = new \OC\Session\Memory(); $timeFactory = new TimeFactory(); // Token providers might require a working database. This code // might however be called when Nextcloud is not yet setup. @@ -506,7 +481,7 @@ class Server extends ServerContainer implements IServerContainer { $c->get(ISecureRandom::class), $c->get('LockdownManager'), $c->get(LoggerInterface::class), - $c->get(IEventDispatcher::class) + $c->get(IEventDispatcher::class), ); /** @deprecated 21.0.0 use BeforeUserCreatedEvent event with the IEventDispatcher instead */ $userSession->listen('\OC\User', 'preCreateUser', function ($uid, $password) { @@ -582,28 +557,20 @@ class Server extends ServerContainer implements IServerContainer { return $userSession; }); $this->registerAlias(\OCP\IUserSession::class, \OC\User\Session::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('UserSession', \OC\User\Session::class); $this->registerAlias(\OCP\Authentication\TwoFactorAuth\IRegistry::class, \OC\Authentication\TwoFactorAuth\Registry::class); $this->registerAlias(INavigationManager::class, \OC\NavigationManager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('NavigationManager', INavigationManager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('AllConfig', \OC\AllConfig::class); $this->registerAlias(\OCP\IConfig::class, \OC\AllConfig::class); $this->registerService(\OC\SystemConfig::class, function ($c) use ($config) { return new \OC\SystemConfig($config); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('SystemConfig', \OC\SystemConfig::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('AppConfig', \OC\AppConfig::class); $this->registerAlias(IAppConfig::class, \OC\AppConfig::class); + $this->registerAlias(IUserConfig::class, \OC\Config\UserConfig::class); + $this->registerAlias(IAppManager::class, AppManager::class); $this->registerService(IFactory::class, function (Server $c) { return new \OC\L10N\Factory( @@ -615,70 +582,66 @@ class Server extends ServerContainer implements IServerContainer { $c->get(IAppManager::class), ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('L10NFactory', IFactory::class); $this->registerAlias(IURLGenerator::class, URLGenerator::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('URLGenerator', IURLGenerator::class); - - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('AppFetcher', AppFetcher::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('CategoryFetcher', CategoryFetcher::class); $this->registerService(ICache::class, function ($c) { return new Cache\File(); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('UserCache', ICache::class); $this->registerService(Factory::class, function (Server $c) { $profiler = $c->get(IProfiler::class); - $arrayCacheFactory = new \OC\Memcache\Factory('', $c->get(LoggerInterface::class), + $arrayCacheFactory = new \OC\Memcache\Factory(fn () => '', $c->get(LoggerInterface::class), $profiler, ArrayCache::class, ArrayCache::class, ArrayCache::class ); - /** @var \OCP\IConfig $config */ - $config = $c->get(\OCP\IConfig::class); - - if ($config->getSystemValueBool('installed', false) && !(defined('PHPUNIT_RUN') && PHPUNIT_RUN)) { - if (!$config->getSystemValueBool('log_query')) { - try { - $v = \OC_App::getAppVersions(); - } catch (\Doctrine\DBAL\Exception $e) { - // Database service probably unavailable - // Probably related to https://github.com/nextcloud/server/issues/37424 - return $arrayCacheFactory; + /** @var SystemConfig $config */ + $config = $c->get(SystemConfig::class); + /** @var ServerVersion $serverVersion */ + $serverVersion = $c->get(ServerVersion::class); + + if ($config->getValue('installed', false) && !(defined('PHPUNIT_RUN') && PHPUNIT_RUN)) { + $logQuery = $config->getValue('log_query'); + $prefixClosure = function () use ($logQuery, $serverVersion): ?string { + if (!$logQuery) { + try { + $v = \OCP\Server::get(IAppConfig::class)->getAppInstalledVersions(true); + } catch (\Doctrine\DBAL\Exception $e) { + // Database service probably unavailable + // Probably related to https://github.com/nextcloud/server/issues/37424 + return null; + } + } else { + // If the log_query is enabled, we can not get the app versions + // as that does a query, which will be logged and the logging + // depends on redis and here we are back again in the same function. + $v = [ + 'log_query' => 'enabled', + ]; } - } else { - // If the log_query is enabled, we can not get the app versions - // as that does a query, which will be logged and the logging - // depends on redis and here we are back again in the same function. - $v = [ - 'log_query' => 'enabled', - ]; - } - $v['core'] = implode(',', \OC_Util::getVersion()); - $version = implode(',', $v); - $instanceId = \OC_Util::getInstanceId(); - $path = \OC::$SERVERROOT; - $prefix = md5($instanceId . '-' . $version . '-' . $path); - return new \OC\Memcache\Factory($prefix, + $v['core'] = implode(',', $serverVersion->getVersion()); + $version = implode(',', array_keys($v)) . implode(',', $v); + $instanceId = \OC_Util::getInstanceId(); + $path = \OC::$SERVERROOT; + return md5($instanceId . '-' . $version . '-' . $path); + }; + return new \OC\Memcache\Factory($prefixClosure, $c->get(LoggerInterface::class), $profiler, - $config->getSystemValue('memcache.local', null), - $config->getSystemValue('memcache.distributed', null), - $config->getSystemValue('memcache.locking', null), - $config->getSystemValueString('redis_log_file') + /** @psalm-taint-escape callable */ + $config->getValue('memcache.local', null), + /** @psalm-taint-escape callable */ + $config->getValue('memcache.distributed', null), + /** @psalm-taint-escape callable */ + $config->getValue('memcache.locking', null), + /** @psalm-taint-escape callable */ + $config->getValue('redis_log_file') ); } return $arrayCacheFactory; }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('MemCacheFactory', Factory::class); $this->registerAlias(ICacheFactory::class, Factory::class); $this->registerService('RedisFactory', function (Server $c) { @@ -693,11 +656,11 @@ class Server extends ServerContainer implements IServerContainer { $c->get(IUserSession::class), $c->get(\OCP\IConfig::class), $c->get(IValidator::class), - $l10n + $c->get(IRichTextFormatter::class), + $l10n, + $c->get(ITimeFactory::class), ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('ActivityManager', \OCP\Activity\IManager::class); $this->registerService(\OCP\Activity\IEventMerger::class, function (Server $c) { return new \OC\Activity\EventMerger( @@ -720,24 +683,20 @@ class Server extends ServerContainer implements IServerContainer { }); $this->registerAlias(IAvatarManager::class, AvatarManager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('AvatarManager', AvatarManager::class); $this->registerAlias(\OCP\Support\CrashReport\IRegistry::class, \OC\Support\CrashReport\Registry::class); $this->registerAlias(\OCP\Support\Subscription\IRegistry::class, \OC\Support\Subscription\Registry::class); $this->registerAlias(\OCP\Support\Subscription\IAssertion::class, \OC\Support\Subscription\Assertion::class); + /** Only used by the PsrLoggerAdapter should not be used by apps */ $this->registerService(\OC\Log::class, function (Server $c) { $logType = $c->get(AllConfig::class)->getSystemValue('log_type', 'file'); $factory = new LogFactory($c, $this->get(SystemConfig::class)); $logger = $factory->get($logType); $registry = $c->get(\OCP\Support\CrashReport\IRegistry::class); - return new Log($logger, $this->get(SystemConfig::class), null, $registry); + return new Log($logger, $this->get(SystemConfig::class), crashReporters: $registry); }); - $this->registerAlias(ILogger::class, \OC\Log::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('Logger', \OC\Log::class); // PSR-3 logger $this->registerAlias(LoggerInterface::class, PsrLoggerAdapter::class); @@ -746,8 +705,6 @@ class Server extends ServerContainer implements IServerContainer { }); $this->registerAlias(IJobList::class, \OC\BackgroundJob\JobList::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('JobList', IJobList::class); $this->registerService(Router::class, function (Server $c) { $cacheFactory = $c->get(ICacheFactory::class); @@ -759,12 +716,6 @@ class Server extends ServerContainer implements IServerContainer { return $router; }); $this->registerAlias(IRouter::class, Router::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('Router', IRouter::class); - - $this->registerAlias(ISearch::class, Search::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('Search', ISearch::class); $this->registerService(\OC\Security\RateLimiting\Backend\IBackend::class, function ($c) { $config = $c->get(\OCP\IConfig::class); @@ -786,27 +737,19 @@ class Server extends ServerContainer implements IServerContainer { }); $this->registerAlias(\OCP\Security\ISecureRandom::class, SecureRandom::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('SecureRandom', \OCP\Security\ISecureRandom::class); $this->registerAlias(\OCP\Security\IRemoteHostValidator::class, \OC\Security\RemoteHostValidator::class); $this->registerAlias(IVerificationToken::class, VerificationToken::class); $this->registerAlias(ICrypto::class, Crypto::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('Crypto', ICrypto::class); $this->registerAlias(IHasher::class, Hasher::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('Hasher', IHasher::class); $this->registerAlias(ICredentialsManager::class, CredentialsManager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('CredentialsManager', ICredentialsManager::class); $this->registerAlias(IDBConnection::class, ConnectionAdapter::class); $this->registerService(Connection::class, function (Server $c) { $systemConfig = $c->get(SystemConfig::class); - $factory = new \OC\DB\ConnectionFactory($systemConfig); + $factory = new \OC\DB\ConnectionFactory($systemConfig, $c->get(ICacheFactory::class)); $type = $systemConfig->getValue('dbtype', 'sqlite'); if (!$factory->isValidType($type)) { throw new \OC\DatabaseException('Invalid database type'); @@ -814,8 +757,6 @@ class Server extends ServerContainer implements IServerContainer { $connection = $factory->getConnection($type, []); return $connection; }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('DatabaseConnection', IDBConnection::class); $this->registerAlias(ICertificateManager::class, CertificateManager::class); $this->registerAlias(IClientService::class, ClientService::class); @@ -828,8 +769,6 @@ class Server extends ServerContainer implements IServerContainer { $this->registerService(IEventLogger::class, function (ContainerInterface $c) { return new EventLogger($c->get(SystemConfig::class), $c->get(LoggerInterface::class), $c->get(Log::class)); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('EventLogger', IEventLogger::class); $this->registerService(IQueryLogger::class, function (ContainerInterface $c) { $queryLogger = new QueryLogger(); @@ -839,31 +778,9 @@ class Server extends ServerContainer implements IServerContainer { } return $queryLogger; }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('QueryLogger', IQueryLogger::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('TempManager', TempManager::class); $this->registerAlias(ITempManager::class, TempManager::class); - - $this->registerService(AppManager::class, function (ContainerInterface $c) { - // TODO: use auto-wiring - return new \OC\App\AppManager( - $c->get(IUserSession::class), - $c->get(\OCP\IConfig::class), - $c->get(IGroupManager::class), - $c->get(ICacheFactory::class), - $c->get(IEventDispatcher::class), - $c->get(LoggerInterface::class), - ); - }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('AppManager', AppManager::class); - $this->registerAlias(IAppManager::class, AppManager::class); - $this->registerAlias(IDateTimeZone::class, DateTimeZone::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('DateTimeZone', IDateTimeZone::class); $this->registerService(IDateTimeFormatter::class, function (Server $c) { $language = $c->get(\OCP\IConfig::class)->getUserValue($c->get(ISession::class)->get('user_id'), 'core', 'lang', null); @@ -873,8 +790,6 @@ class Server extends ServerContainer implements IServerContainer { $c->getL10N('lib', $language) ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('DateTimeFormatter', IDateTimeFormatter::class); $this->registerService(IUserMountCache::class, function (ContainerInterface $c) { $mountCache = $c->get(UserMountCache::class); @@ -882,8 +797,6 @@ class Server extends ServerContainer implements IServerContainer { $listener->listen($c->get(IUserManager::class)); return $mountCache; }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('UserMountCache', IUserMountCache::class); $this->registerService(IMountProviderCollection::class, function (ContainerInterface $c) { $loader = $c->get(IStorageFactory::class); @@ -895,25 +808,22 @@ class Server extends ServerContainer implements IServerContainer { $config = $c->get(\OCP\IConfig::class); $logger = $c->get(LoggerInterface::class); + $objectStoreConfig = $c->get(PrimaryObjectStoreConfig::class); $manager->registerProvider(new CacheMountProvider($config)); $manager->registerHomeProvider(new LocalHomeMountProvider()); - $manager->registerHomeProvider(new ObjectHomeMountProvider($config)); - $manager->registerRootProvider(new RootMountProvider($config, $c->get(LoggerInterface::class))); + $manager->registerHomeProvider(new ObjectHomeMountProvider($objectStoreConfig)); + $manager->registerRootProvider(new RootMountProvider($objectStoreConfig, $config)); $manager->registerRootProvider(new ObjectStorePreviewCacheMountProvider($logger, $config)); return $manager; }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('MountConfigManager', IMountProviderCollection::class); - /** @deprecated 20.0.0 */ - $this->registerDeprecatedAlias('IniWrapper', IniGetWrapper::class); $this->registerService(IBus::class, function (ContainerInterface $c) { $busClass = $c->get(\OCP\IConfig::class)->getSystemValueString('commandbus'); if ($busClass) { [$app, $class] = explode('::', $busClass, 2); - if ($c->get(IAppManager::class)->isInstalled($app)) { - \OC_App::loadApp($app); + if ($c->get(IAppManager::class)->isEnabledForUser($app)) { + $c->get(IAppManager::class)->loadApp($app); return $c->get($class); } else { throw new ServiceUnavailableException("The app providing the command bus ($app) is not enabled"); @@ -924,16 +834,13 @@ class Server extends ServerContainer implements IServerContainer { } }); $this->registerDeprecatedAlias('AsyncCommandBus', IBus::class); - /** @deprecated 20.0.0 */ - $this->registerDeprecatedAlias('TrustedDomainHelper', TrustedDomainHelper::class); $this->registerAlias(ITrustedDomainHelper::class, TrustedDomainHelper::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('Throttler', Throttler::class); $this->registerAlias(IThrottler::class, Throttler::class); $this->registerService(\OC\Security\Bruteforce\Backend\IBackend::class, function ($c) { $config = $c->get(\OCP\IConfig::class); - if (ltrim($config->getSystemValueString('memcache.distributed', ''), '\\') === \OC\Memcache\Redis::class) { + if (!$config->getSystemValueBool('auth.bruteforce.protection.force.database', false) + && ltrim($config->getSystemValueString('memcache.distributed', ''), '\\') === \OC\Memcache\Redis::class) { $backend = $c->get(\OC\Security\Bruteforce\Backend\MemoryCacheBackend::class); } else { $backend = $c->get(\OC\Security\Bruteforce\Backend\DatabaseBackend::class); @@ -944,28 +851,29 @@ class Server extends ServerContainer implements IServerContainer { $this->registerDeprecatedAlias('IntegrityCodeChecker', Checker::class); $this->registerService(Checker::class, function (ContainerInterface $c) { - // IConfig and IAppManager requires a working database. This code - // might however be called when ownCloud is not yet setup. + // IConfig requires a working database. This code + // might however be called when Nextcloud is not yet setup. if (\OC::$server->get(SystemConfig::class)->getValue('installed', false)) { $config = $c->get(\OCP\IConfig::class); $appConfig = $c->get(\OCP\IAppConfig::class); - $appManager = $c->get(IAppManager::class); } else { - $config = $appConfig = $appManager = null; + $config = null; + $appConfig = null; } return new Checker( - new EnvironmentHelper(), + $c->get(ServerVersion::class), + $c->get(EnvironmentHelper::class), new FileAccessHelper(), new AppLocator(), $config, $appConfig, $c->get(ICacheFactory::class), - $appManager, + $c->get(IAppManager::class), $c->get(IMimeTypeDetector::class) ); }); - $this->registerService(\OCP\IRequest::class, function (ContainerInterface $c) { + $this->registerService(Request::class, function (ContainerInterface $c) { if (isset($this['urlParams'])) { $urlParams = $this['urlParams']; } else { @@ -999,8 +907,7 @@ class Server extends ServerContainer implements IServerContainer { $stream ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('Request', \OCP\IRequest::class); + $this->registerAlias(\OCP\IRequest::class, Request::class); $this->registerService(IRequestId::class, function (ContainerInterface $c): IRequestId { return new RequestId( @@ -1020,11 +927,9 @@ class Server extends ServerContainer implements IServerContainer { $c->get(IFactory::class) ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('Mailer', IMailer::class); - /** @deprecated 21.0.0 */ - $this->registerDeprecatedAlias('LDAPProvider', ILDAPProvider::class); + /** @since 30.0.0 */ + $this->registerAlias(\OCP\Mail\Provider\IManager::class, \OC\Mail\Provider\Manager::class); $this->registerService(ILDAPProviderFactory::class, function (ContainerInterface $c) { $config = $c->get(\OCP\IConfig::class); @@ -1060,8 +965,6 @@ class Server extends ServerContainer implements IServerContainer { } return new NoopLockingProvider(); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('LockingProvider', ILockingProvider::class); $this->registerService(ILockManager::class, function (Server $c): LockManager { return new LockManager(); @@ -1073,8 +976,6 @@ class Server extends ServerContainer implements IServerContainer { return $c->get(\OC\Files\Mount\Manager::class)->getSetupManager(); }); $this->registerAlias(IMountManager::class, \OC\Files\Mount\Manager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('MountManager', IMountManager::class); $this->registerService(IMimeTypeDetector::class, function (ContainerInterface $c) { return new \OC\Files\Type\Detection( @@ -1084,18 +985,12 @@ class Server extends ServerContainer implements IServerContainer { \OC::$SERVERROOT . '/resources/config/' ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('MimeTypeDetector', IMimeTypeDetector::class); $this->registerAlias(IMimeTypeLoader::class, Loader::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('MimeTypeLoader', IMimeTypeLoader::class); $this->registerService(BundleFetcher::class, function () { return new BundleFetcher($this->getL10N('lib')); }); $this->registerAlias(\OCP\Notification\IManager::class, Manager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('NotificationManager', \OCP\Notification\IManager::class); $this->registerService(CapabilitiesManager::class, function (ContainerInterface $c) { $manager = new CapabilitiesManager($c->get(LoggerInterface::class)); @@ -1107,8 +1002,6 @@ class Server extends ServerContainer implements IServerContainer { }); return $manager; }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('CapabilitiesManager', CapabilitiesManager::class); $this->registerService(ICommentsManager::class, function (Server $c) { $config = $c->get(\OCP\IConfig::class); @@ -1129,8 +1022,6 @@ class Server extends ServerContainer implements IServerContainer { return $manager; }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('CommentsManager', ICommentsManager::class); $this->registerAlias(\OC_Defaults::class, 'ThemingDefaults'); $this->registerService('ThemingDefaults', function (Server $c) { @@ -1141,10 +1032,11 @@ class Server extends ServerContainer implements IServerContainer { $classExists = false; } - if ($classExists && $c->get(\OCP\IConfig::class)->getSystemValueBool('installed', false) && $c->get(IAppManager::class)->isInstalled('theming') && $c->get(TrustedDomainHelper::class)->isTrustedDomain($c->getRequest()->getInsecureServerHost())) { + if ($classExists && $c->get(\OCP\IConfig::class)->getSystemValueBool('installed', false) && $c->get(IAppManager::class)->isEnabledForAnyone('theming') && $c->get(TrustedDomainHelper::class)->isTrustedDomain($c->getRequest()->getInsecureServerHost())) { $backgroundService = new BackgroundService( $c->get(IRootFolder::class), $c->getAppDataDir('theming'), + $c->get(IAppConfig::class), $c->get(\OCP\IConfig::class), $c->get(ISession::class)->get('user_id'), ); @@ -1159,11 +1051,12 @@ class Server extends ServerContainer implements IServerContainer { ); return new ThemingDefaults( $c->get(\OCP\IConfig::class), + $c->get(\OCP\IAppConfig::class), $c->getL10N('theming'), $c->get(IUserSession::class), $c->get(IURLGenerator::class), $c->get(ICacheFactory::class), - new Util($c->get(\OCP\IConfig::class), $this->get(IAppManager::class), $c->getAppDataDir('theming'), $imageManager), + new Util($c->get(ServerVersion::class), $c->get(\OCP\IConfig::class), $this->get(IAppManager::class), $c->getAppDataDir('theming'), $imageManager), $imageManager, $c->get(IAppManager::class), $c->get(INavigationManager::class), @@ -1202,31 +1095,24 @@ class Server extends ServerContainer implements IServerContainer { ); return new CryptoWrapper( - $c->get(\OCP\IConfig::class), $c->get(ICrypto::class), $c->get(ISecureRandom::class), $request ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('CsrfTokenManager', CsrfTokenManager::class); $this->registerService(SessionStorage::class, function (ContainerInterface $c) { return new SessionStorage($c->get(ISession::class)); }); $this->registerAlias(\OCP\Security\IContentSecurityPolicyManager::class, ContentSecurityPolicyManager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('ContentSecurityPolicyManager', ContentSecurityPolicyManager::class); $this->registerService(IProviderFactory::class, function (ContainerInterface $c) { $config = $c->get(\OCP\IConfig::class); $factoryClass = $config->getSystemValue('sharing.managerFactory', ProviderFactory::class); /** @var \OCP\Share\IProviderFactory $factory */ - return new $factoryClass($this); + return $c->get($factoryClass); }); $this->registerAlias(\OCP\Share\IManager::class, \OC\Share20\Manager::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('ShareManager', \OCP\Share\IManager::class); $this->registerService(\OCP\Collaboration\Collaborators\ISearch::class, function (Server $c) { $instance = new Collaboration\Collaborators\Search($c); @@ -1240,8 +1126,6 @@ class Server extends ServerContainer implements IServerContainer { return $instance; }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('CollaboratorSearch', \OCP\Collaboration\Collaborators\ISearch::class); $this->registerAlias(\OCP\Collaboration\Collaborators\ISearchResult::class, \OC\Collaboration\Collaborators\SearchResult::class); $this->registerAlias(\OCP\Collaboration\AutoComplete\IManager::class, \OC\Collaboration\AutoComplete\Manager::class); @@ -1277,47 +1161,30 @@ class Server extends ServerContainer implements IServerContainer { $this->registerService(ICloudIdManager::class, function (ContainerInterface $c) { return new CloudIdManager( + $c->get(ICacheFactory::class), + $c->get(IEventDispatcher::class), $c->get(\OCP\Contacts\IManager::class), $c->get(IURLGenerator::class), $c->get(IUserManager::class), - $c->get(ICacheFactory::class), - $c->get(IEventDispatcher::class), ); }); $this->registerAlias(\OCP\GlobalScale\IConfig::class, \OC\GlobalScale\Config::class); - - $this->registerService(ICloudFederationProviderManager::class, function (ContainerInterface $c) { - return new CloudFederationProviderManager( - $c->get(\OCP\IConfig::class), - $c->get(IAppManager::class), - $c->get(IClientService::class), - $c->get(ICloudIdManager::class), - $c->get(IOCMDiscoveryService::class), - $c->get(LoggerInterface::class) - ); - }); - + $this->registerAlias(ICloudFederationProviderManager::class, CloudFederationProviderManager::class); $this->registerService(ICloudFederationFactory::class, function (Server $c) { return new CloudFederationFactory(); }); $this->registerAlias(\OCP\AppFramework\Utility\IControllerMethodReflector::class, \OC\AppFramework\Utility\ControllerMethodReflector::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('ControllerMethodReflector', \OCP\AppFramework\Utility\IControllerMethodReflector::class); $this->registerAlias(\OCP\AppFramework\Utility\ITimeFactory::class, \OC\AppFramework\Utility\TimeFactory::class); $this->registerAlias(\Psr\Clock\ClockInterface::class, \OCP\AppFramework\Utility\ITimeFactory::class); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('TimeFactory', \OCP\AppFramework\Utility\ITimeFactory::class); $this->registerService(Defaults::class, function (Server $c) { return new Defaults( $c->get('ThemingDefaults') ); }); - /** @deprecated 19.0.0 */ - $this->registerDeprecatedAlias('Defaults', \OCP\Defaults::class); $this->registerService(\OCP\ISession::class, function (ContainerInterface $c) { return $c->get(\OCP\IUserSession::class)->getSession(); @@ -1371,12 +1238,16 @@ class Server extends ServerContainer implements IServerContainer { $this->registerAlias(\OCP\Files\AppData\IAppDataFactory::class, \OC\Files\AppData\Factory::class); + $this->registerAlias(\OCP\Files\IFilenameValidator::class, \OC\Files\FilenameValidator::class); + $this->registerAlias(IBinaryFinder::class, BinaryFinder::class); $this->registerAlias(\OCP\Share\IPublicShareTemplateFactory::class, \OC\Share20\PublicShareTemplateFactory::class); $this->registerAlias(ITranslationManager::class, TranslationManager::class); + $this->registerAlias(IConversionManager::class, ConversionManager::class); + $this->registerAlias(ISpeechToTextManager::class, SpeechToTextManager::class); $this->registerAlias(IEventSourceFactory::class, EventSourceFactory::class); @@ -1389,7 +1260,8 @@ class Server extends ServerContainer implements IServerContainer { $this->registerAlias(IPhoneNumberUtil::class, PhoneNumberUtil::class); - $this->registerAlias(IOCMProvider::class, OCMProvider::class); + $this->registerAlias(ICapabilityAwareOCMProvider::class, OCMProvider::class); + $this->registerDeprecatedAlias(IOCMProvider::class, OCMProvider::class); $this->registerAlias(ISetupCheckManager::class, SetupCheckManager::class); @@ -1401,6 +1273,14 @@ class Server extends ServerContainer implements IServerContainer { $this->registerAlias(\OCP\TaskProcessing\IManager::class, \OC\TaskProcessing\Manager::class); + $this->registerAlias(IRemoteAddress::class, RemoteAddress::class); + + $this->registerAlias(\OCP\Security\Ip\IFactory::class, \OC\Security\Ip\Factory::class); + + $this->registerAlias(IRichTextFormatter::class, \OC\RichObjectStrings\RichTextFormatter::class); + + $this->registerAlias(ISignatureManager::class, SignatureManager::class); + $this->connectDispatcher(); } @@ -1410,30 +1290,6 @@ class Server extends ServerContainer implements IServerContainer { $hookConnector->viewToNode(); } - /** - * @return \OCP\Calendar\IManager - * @deprecated 20.0.0 - */ - public function getCalendarManager() { - return $this->get(\OC\Calendar\Manager::class); - } - - /** - * @return \OCP\Calendar\Resource\IManager - * @deprecated 20.0.0 - */ - public function getCalendarResourceBackendManager() { - return $this->get(\OC\Calendar\Resource\Manager::class); - } - - /** - * @return \OCP\Calendar\Room\IManager - * @deprecated 20.0.0 - */ - public function getCalendarRoomBackendManager() { - return $this->get(\OC\Calendar\Room\Manager::class); - } - private function connectDispatcher(): void { /** @var IEventDispatcher $eventDispatcher */ $eventDispatcher = $this->get(IEventDispatcher::class); @@ -1471,14 +1327,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * @return \OCP\Encryption\Keys\IStorage - * @deprecated 20.0.0 - */ - public function getEncryptionKeyStorage() { - return $this->get(IStorage::class); - } - - /** * The current request object holding all information about the request * currently being processed is returned from this method. * In case the current execution was not initiated by a web request null is returned @@ -1491,61 +1339,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * Returns the preview manager which can create preview images for a given file - * - * @return IPreview - * @deprecated 20.0.0 - */ - public function getPreviewManager() { - return $this->get(IPreview::class); - } - - /** - * Returns the tag manager which can get and set tags for different object types - * - * @see \OCP\ITagManager::load() - * @return ITagManager - * @deprecated 20.0.0 - */ - public function getTagManager() { - return $this->get(ITagManager::class); - } - - /** - * Returns the system-tag manager - * - * @return ISystemTagManager - * - * @since 9.0.0 - * @deprecated 20.0.0 - */ - public function getSystemTagManager() { - return $this->get(ISystemTagManager::class); - } - - /** - * Returns the system-tag object mapper - * - * @return ISystemTagObjectMapper - * - * @since 9.0.0 - * @deprecated 20.0.0 - */ - public function getSystemTagObjectMapper() { - return $this->get(ISystemTagObjectMapper::class); - } - - /** - * Returns the avatar manager, used for avatar functionality - * - * @return IAvatarManager - * @deprecated 20.0.0 - */ - public function getAvatarManager() { - return $this->get(IAvatarManager::class); - } - - /** * Returns the root folder of ownCloud's data directory * * @return IRootFolder @@ -1629,22 +1422,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * @return \OC\Authentication\TwoFactorAuth\Manager - * @deprecated 20.0.0 - */ - public function getTwoFactorAuthManager() { - return $this->get(\OC\Authentication\TwoFactorAuth\Manager::class); - } - - /** - * @return \OC\NavigationManager - * @deprecated 20.0.0 - */ - public function getNavigationManager() { - return $this->get(INavigationManager::class); - } - - /** * @return \OCP\IConfig * @deprecated 20.0.0 */ @@ -1661,16 +1438,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * Returns the app config manager - * - * @return IAppConfig - * @deprecated 20.0.0 - */ - public function getAppConfig() { - return $this->get(IAppConfig::class); - } - - /** * @return IFactory * @deprecated 20.0.0 */ @@ -1699,14 +1466,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * @return AppFetcher - * @deprecated 20.0.0 - */ - public function getAppFetcher() { - return $this->get(AppFetcher::class); - } - - /** * Returns an ICache instance. Since 8.1.0 it returns a fake cache. Use * getMemCacheFactory() instead. * @@ -1728,17 +1487,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * Returns an \OC\RedisFactory instance - * - * @return \OC\RedisFactory - * @deprecated 20.0.0 - */ - public function getGetRedisFactory() { - return $this->get('RedisFactory'); - } - - - /** * Returns the current session * * @return \OCP\IDBConnection @@ -1769,45 +1517,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * Returns a logger instance - * - * @return ILogger - * @deprecated 20.0.0 - */ - public function getLogger() { - return $this->get(ILogger::class); - } - - /** - * @return ILogFactory - * @throws \OCP\AppFramework\QueryException - * @deprecated 20.0.0 - */ - public function getLogFactory() { - return $this->get(ILogFactory::class); - } - - /** - * Returns a router for generating and matching urls - * - * @return IRouter - * @deprecated 20.0.0 - */ - public function getRouter() { - return $this->get(IRouter::class); - } - - /** - * Returns a search instance - * - * @return ISearch - * @deprecated 20.0.0 - */ - public function getSearch() { - return $this->get(ISearch::class); - } - - /** * Returns a SecureRandom instance * * @return \OCP\Security\ISecureRandom @@ -1838,16 +1547,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * Returns a CredentialsManager instance - * - * @return ICredentialsManager - * @deprecated 20.0.0 - */ - public function getCredentialsManager() { - return $this->get(ICredentialsManager::class); - } - - /** * Get the certificate manager * * @return \OCP\ICertificateManager @@ -1857,40 +1556,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * Returns an instance of the HTTP client service - * - * @return IClientService - * @deprecated 20.0.0 - */ - public function getHTTPClientService() { - return $this->get(IClientService::class); - } - - /** - * Get the active event logger - * - * The returned logger only logs data when debug mode is enabled - * - * @return IEventLogger - * @deprecated 20.0.0 - */ - public function getEventLogger() { - return $this->get(IEventLogger::class); - } - - /** - * Get the active query logger - * - * The returned logger only logs data when debug mode is enabled - * - * @return IQueryLogger - * @deprecated 20.0.0 - */ - public function getQueryLogger() { - return $this->get(IQueryLogger::class); - } - - /** * Get the manager for temporary files and folders * * @return \OCP\ITempManager @@ -1931,66 +1596,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * @return \OC\OCSClient - * @deprecated 20.0.0 - */ - public function getOcsClient() { - return $this->get('OcsClient'); - } - - /** - * @return IDateTimeZone - * @deprecated 20.0.0 - */ - public function getDateTimeZone() { - return $this->get(IDateTimeZone::class); - } - - /** - * @return IDateTimeFormatter - * @deprecated 20.0.0 - */ - public function getDateTimeFormatter() { - return $this->get(IDateTimeFormatter::class); - } - - /** - * @return IMountProviderCollection - * @deprecated 20.0.0 - */ - public function getMountProviderCollection() { - return $this->get(IMountProviderCollection::class); - } - - /** - * Get the IniWrapper - * - * @return IniGetWrapper - * @deprecated 20.0.0 - */ - public function getIniWrapper() { - return $this->get(IniGetWrapper::class); - } - - /** - * @return \OCP\Command\IBus - * @deprecated 20.0.0 - */ - public function getCommandBus() { - return $this->get(IBus::class); - } - - /** - * Get the trusted domain helper - * - * @return TrustedDomainHelper - * @deprecated 20.0.0 - */ - public function getTrustedDomainHelper() { - return $this->get(TrustedDomainHelper::class); - } - - /** * Get the locking provider * * @return ILockingProvider @@ -2002,22 +1607,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * @return IMountManager - * @deprecated 20.0.0 - **/ - public function getMountManager() { - return $this->get(IMountManager::class); - } - - /** - * @return IUserMountCache - * @deprecated 20.0.0 - */ - public function getUserMountCache() { - return $this->get(IUserMountCache::class); - } - - /** * Get the MimeTypeDetector * * @return IMimeTypeDetector @@ -2038,16 +1627,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * Get the manager of all the capabilities - * - * @return CapabilitiesManager - * @deprecated 20.0.0 - */ - public function getCapabilitiesManager() { - return $this->get(CapabilitiesManager::class); - } - - /** * Get the Notification Manager * * @return \OCP\Notification\IManager @@ -2059,14 +1638,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * @return ICommentsManager - * @deprecated 20.0.0 - */ - public function getCommentsManager() { - return $this->get(ICommentsManager::class); - } - - /** * @return \OCA\Theming\ThemingDefaults * @deprecated 20.0.0 */ @@ -2083,14 +1654,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * @return \OC\Session\CryptoWrapper - * @deprecated 20.0.0 - */ - public function getSessionCryptoWrapper() { - return $this->get('CryptoWrapper'); - } - - /** * @return CsrfTokenManager * @deprecated 20.0.0 */ @@ -2099,22 +1662,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * @return IThrottler - * @deprecated 20.0.0 - */ - public function getBruteForceThrottler() { - return $this->get(Throttler::class); - } - - /** - * @return IContentSecurityPolicyManager - * @deprecated 20.0.0 - */ - public function getContentSecurityPolicyManager() { - return $this->get(ContentSecurityPolicyManager::class); - } - - /** * @return ContentSecurityPolicyNonceManager * @deprecated 20.0.0 */ @@ -2123,80 +1670,6 @@ class Server extends ServerContainer implements IServerContainer { } /** - * Not a public API as of 8.2, wait for 9.0 - * - * @return \OCA\Files_External\Service\BackendService - * @deprecated 20.0.0 - */ - public function getStoragesBackendService() { - return $this->get(BackendService::class); - } - - /** - * Not a public API as of 8.2, wait for 9.0 - * - * @return \OCA\Files_External\Service\GlobalStoragesService - * @deprecated 20.0.0 - */ - public function getGlobalStoragesService() { - return $this->get(GlobalStoragesService::class); - } - - /** - * Not a public API as of 8.2, wait for 9.0 - * - * @return \OCA\Files_External\Service\UserGlobalStoragesService - * @deprecated 20.0.0 - */ - public function getUserGlobalStoragesService() { - return $this->get(UserGlobalStoragesService::class); - } - - /** - * Not a public API as of 8.2, wait for 9.0 - * - * @return \OCA\Files_External\Service\UserStoragesService - * @deprecated 20.0.0 - */ - public function getUserStoragesService() { - return $this->get(UserStoragesService::class); - } - - /** - * @return \OCP\Share\IManager - * @deprecated 20.0.0 - */ - public function getShareManager() { - return $this->get(\OCP\Share\IManager::class); - } - - /** - * @return \OCP\Collaboration\Collaborators\ISearch - * @deprecated 20.0.0 - */ - public function getCollaboratorSearch() { - return $this->get(\OCP\Collaboration\Collaborators\ISearch::class); - } - - /** - * @return \OCP\Collaboration\AutoComplete\IManager - * @deprecated 20.0.0 - */ - public function getAutoCompleteManager() { - return $this->get(IManager::class); - } - - /** - * Returns the LDAP Provider - * - * @return \OCP\LDAP\ILDAPProvider - * @deprecated 20.0.0 - */ - public function getLDAPProvider() { - return $this->get('LDAPProvider'); - } - - /** * @return \OCP\Settings\IManager * @deprecated 20.0.0 */ @@ -2209,97 +1682,15 @@ class Server extends ServerContainer implements IServerContainer { * @deprecated 20.0.0 Use get(\OCP\Files\AppData\IAppDataFactory::class)->get($app) instead */ public function getAppDataDir($app) { - /** @var \OC\Files\AppData\Factory $factory */ $factory = $this->get(\OC\Files\AppData\Factory::class); return $factory->get($app); } /** - * @return \OCP\Lockdown\ILockdownManager - * @deprecated 20.0.0 - */ - public function getLockdownManager() { - return $this->get('LockdownManager'); - } - - /** * @return \OCP\Federation\ICloudIdManager * @deprecated 20.0.0 */ public function getCloudIdManager() { return $this->get(ICloudIdManager::class); } - - /** - * @return \OCP\GlobalScale\IConfig - * @deprecated 20.0.0 - */ - public function getGlobalScaleConfig() { - return $this->get(IConfig::class); - } - - /** - * @return \OCP\Federation\ICloudFederationProviderManager - * @deprecated 20.0.0 - */ - public function getCloudFederationProviderManager() { - return $this->get(ICloudFederationProviderManager::class); - } - - /** - * @return \OCP\Remote\Api\IApiFactory - * @deprecated 20.0.0 - */ - public function getRemoteApiFactory() { - return $this->get(IApiFactory::class); - } - - /** - * @return \OCP\Federation\ICloudFederationFactory - * @deprecated 20.0.0 - */ - public function getCloudFederationFactory() { - return $this->get(ICloudFederationFactory::class); - } - - /** - * @return \OCP\Remote\IInstanceFactory - * @deprecated 20.0.0 - */ - public function getRemoteInstanceFactory() { - return $this->get(IInstanceFactory::class); - } - - /** - * @return IStorageFactory - * @deprecated 20.0.0 - */ - public function getStorageFactory() { - return $this->get(IStorageFactory::class); - } - - /** - * Get the Preview GeneratorHelper - * - * @return GeneratorHelper - * @since 17.0.0 - * @deprecated 20.0.0 - */ - public function getGeneratorHelper() { - return $this->get(\OC\Preview\GeneratorHelper::class); - } - - private function registerDeprecatedAlias(string $alias, string $target) { - $this->registerService($alias, function (ContainerInterface $container) use ($target, $alias) { - try { - /** @var LoggerInterface $logger */ - $logger = $container->get(LoggerInterface::class); - $logger->debug('The requested alias "' . $alias . '" is deprecated. Please request "' . $target . '" directly. This alias will be removed in a future Nextcloud version.', ['app' => 'serverDI']); - } catch (ContainerExceptionInterface $e) { - // Could not get logger. Continue - } - - return $container->get($target); - }, false); - } } |