]> source.dussan.org Git - nextcloud-server.git/commitdiff
Use the proper IAppContainer and IServerContainer type hints to know which code runs... 21870/head
authorMorris Jobke <hey@morrisjobke.de>
Tue, 21 Jul 2020 12:36:40 +0000 (14:36 +0200)
committerMorris Jobke <hey@morrisjobke.de>
Tue, 21 Jul 2020 18:44:05 +0000 (20:44 +0200)
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
apps/admin_audit/lib/AppInfo/Application.php
apps/federatedfilesharing/lib/AppInfo/Application.php
apps/lookup_server_connector/lib/AppInfo/Application.php
apps/settings/lib/AppInfo/Application.php
apps/updatenotification/lib/AppInfo/Application.php
apps/user_ldap/lib/AppInfo/Application.php
lib/private/AppFramework/Bootstrap/BootContext.php
lib/public/AppFramework/App.php
lib/public/AppFramework/Bootstrap/IBootContext.php

index 81aeada2aaf2294e4be38c993d61452ac9d2f605..b63c361b51facb35ca93c509687ae7de9ee68c42 100644 (file)
@@ -37,7 +37,6 @@ use Closure;
 use OC\Files\Filesystem;
 use OC\Files\Node\File;
 use OC\Group\Manager;
-use OC\User\Session;
 use OCA\AdminAudit\Actions\AppManagement;
 use OCA\AdminAudit\Actions\Auth;
 use OCA\AdminAudit\Actions\Console;
@@ -59,11 +58,11 @@ use OCP\IConfig;
 use OCP\IGroupManager;
 use OCP\ILogger;
 use OCP\IPreview;
+use OCP\IServerContainer;
 use OCP\IUserSession;
 use OCP\Log\ILogFactory;
 use OCP\Share;
 use OCP\Util;
-use Psr\Container\ContainerInterface;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\EventDispatcher\GenericEvent;
 
@@ -108,44 +107,43 @@ class Application extends App implements IBootstrap {
         * Register hooks in order to log them
         */
        private function registerHooks(ILogger $logger,
-                                                                        ContainerInterface $container) {
-               $this->userManagementHooks($logger, $container);
-               $this->groupHooks($logger, $container);
+                                                                        IServerContainer $serverContainer) {
+               $this->userManagementHooks($logger, $serverContainer->get(IUserSession::class));
+               $this->groupHooks($logger, $serverContainer->get(IGroupManager::class));
                $this->authHooks($logger);
 
-               $this->consoleHooks($logger, $container);
-               $this->appHooks($logger, $container);
+               /** @var EventDispatcherInterface $eventDispatcher */
+               $eventDispatcher = $serverContainer->get(EventDispatcherInterface::class);
+               $this->consoleHooks($logger, $eventDispatcher);
+               $this->appHooks($logger, $eventDispatcher);
 
                $this->sharingHooks($logger);
 
-               $this->fileHooks($logger, $container);
+               $this->fileHooks($logger, $eventDispatcher);
                $this->trashbinHooks($logger);
                $this->versionsHooks($logger);
 
-               $this->securityHooks($logger, $container);
+               $this->securityHooks($logger, $eventDispatcher);
        }
 
        private function userManagementHooks(ILogger $logger,
-                                                                                ContainerInterface $container) {
+                                                                                IUserSession $userSession) {
                $userActions = new UserManagement($logger);
 
                Util::connectHook('OC_User', 'post_createUser', $userActions, 'create');
                Util::connectHook('OC_User', 'post_deleteUser', $userActions, 'delete');
                Util::connectHook('OC_User', 'changeUser', $userActions, 'change');
 
-               /** @var IUserSession|Session $userSession */
-               $userSession = $container->get(IUserSession::class);
                $userSession->listen('\OC\User', 'postSetPassword', [$userActions, 'setPassword']);
                $userSession->listen('\OC\User', 'assignedUserId', [$userActions, 'assign']);
                $userSession->listen('\OC\User', 'postUnassignedUserId', [$userActions, 'unassign']);
        }
 
        private function groupHooks(ILogger $logger,
-                                                                 ContainerInterface $container) {
+                                                               IGroupManager $groupManager) {
                $groupActions = new GroupManagement($logger);
 
                /** @var IGroupManager|Manager $groupManager */
-               $groupManager = $container->getGroupManager(IGroupManager::class);
                $groupManager->listen('\OC\Group', 'postRemoveUser', [$groupActions, 'removeUser']);
                $groupManager->listen('\OC\Group', 'postAddUser', [$groupActions, 'addUser']);
                $groupManager->listen('\OC\Group', 'postDelete', [$groupActions, 'deleteGroup']);
@@ -173,8 +171,7 @@ class Application extends App implements IBootstrap {
        }
 
        private function appHooks(ILogger $logger,
-                                                               ContainerInterface $container) {
-               $eventDispatcher = $container->get(EventDispatcherInterface::class);
+                                                         EventDispatcherInterface $eventDispatcher) {
                $eventDispatcher->addListener(ManagerEvent::EVENT_APP_ENABLE, function (ManagerEvent $event) use ($logger) {
                        $appActions = new AppManagement($logger);
                        $appActions->enableApp($event->getAppID());
@@ -190,8 +187,7 @@ class Application extends App implements IBootstrap {
        }
 
        private function consoleHooks(ILogger $logger,
-                                                                       ContainerInterface $container) {
-               $eventDispatcher = $container->get(EventDispatcherInterface::class);
+                                                                 EventDispatcherInterface $eventDispatcher) {
                $eventDispatcher->addListener(ConsoleEvent::EVENT_RUN, function (ConsoleEvent $event) use ($logger) {
                        $appActions = new Console($logger);
                        $appActions->runCommand($event->getArguments());
@@ -199,9 +195,8 @@ class Application extends App implements IBootstrap {
        }
 
        private function fileHooks(ILogger $logger,
-                                                                ContainerInterface $container) {
+                                                          EventDispatcherInterface $eventDispatcher) {
                $fileActions = new Files($logger);
-               $eventDispatcher = $container->get(EventDispatcherInterface::class);
                $eventDispatcher->addListener(
                        IPreview::EVENT,
                        function (GenericEvent $event) use ($fileActions) {
@@ -274,8 +269,7 @@ class Application extends App implements IBootstrap {
        }
 
        private function securityHooks(ILogger $logger,
-                                                                        ContainerInterface $container) {
-               $eventDispatcher = $container->get(EventDispatcherInterface::class);
+                                                                  EventDispatcherInterface $eventDispatcher) {
                $eventDispatcher->addListener(IProvider::EVENT_SUCCESS, function (GenericEvent $event) use ($logger) {
                        $security = new Security($logger);
                        $security->twofactorSuccess($event->getSubject(), $event->getArguments());
index 1afaa01a48faca06b3335e2d9a4c248eaec08a95..48907a8844798b48d404571d8631a3b3620b674b 100644 (file)
@@ -37,9 +37,9 @@ use OCP\AppFramework\App;
 use OCP\AppFramework\Bootstrap\IBootContext;
 use OCP\AppFramework\Bootstrap\IBootstrap;
 use OCP\AppFramework\Bootstrap\IRegistrationContext;
+use OCP\AppFramework\IAppContainer;
 use OCP\Federation\ICloudFederationProviderManager;
 use OCP\Notification\IManager as INotifiactionManager;
-use Psr\Container\ContainerInterface;
 
 class Application extends App implements IBootstrap {
        public function __construct() {
@@ -56,11 +56,11 @@ class Application extends App implements IBootstrap {
        }
 
        private function registerCloudFederationProvider(ICloudFederationProviderManager $manager,
-                                                                                                        ContainerInterface $container): void {
+                                                                                                        IAppContainer $appContainer): void {
                $manager->addCloudFederationProvider('file',
                        'Federated Files Sharing',
-                       function () use ($container) {
-                               return $container->get(CloudFederationProviderFiles::class);
+                       function () use ($appContainer) {
+                               return $appContainer->get(CloudFederationProviderFiles::class);
                        });
        }
 
index df5ddcbab8794cb8dd311ba1910692a00d1f70c1..cc51dff5cf0950ec798cdf38f0062107590fb2f0 100644 (file)
@@ -35,8 +35,8 @@ use OCP\AppFramework\Bootstrap\IBootContext;
 use OCP\AppFramework\Bootstrap\IBootstrap;
 use OCP\AppFramework\Bootstrap\IRegistrationContext;
 use OCP\EventDispatcher\IEventDispatcher;
+use OCP\AppFramework\IAppContainer;
 use OCP\IUser;
-use Psr\Container\ContainerInterface;
 use Symfony\Component\EventDispatcher\GenericEvent;
 
 class Application extends App implements IBootstrap {
@@ -57,13 +57,13 @@ class Application extends App implements IBootstrap {
         * @todo move the OCP events and then move the registration to `register`
         */
        private function registerEventListeners(IEventDispatcher $dispatcher,
-                                                                                       ContainerInterface $container): void {
-               $dispatcher->addListener('OC\AccountManager::userUpdated', function (GenericEvent $event) use ($container) {
+                                                                                       IAppContainer $appContainer): void {
+               $dispatcher->addListener('OC\AccountManager::userUpdated', function (GenericEvent $event) use ($appContainer) {
                        /** @var IUser $user */
                        $user = $event->getSubject();
 
                        /** @var UpdateLookupServer $updateLookupServer */
-                       $updateLookupServer = $container->get(UpdateLookupServer::class);
+                       $updateLookupServer = $appContainer->get(UpdateLookupServer::class);
                        $updateLookupServer->userUpdated($user);
                });
        }
index 3ea4d6bc080e9908f8da1f813867af1bd17de64b..6e6eb26d01161ca1a0343cc16ada5e2ac17b5935 100644 (file)
@@ -51,6 +51,7 @@ use OCP\AppFramework\App;
 use OCP\AppFramework\Bootstrap\IBootContext;
 use OCP\AppFramework\Bootstrap\IBootstrap;
 use OCP\AppFramework\Bootstrap\IRegistrationContext;
+use OCP\AppFramework\IAppContainer;
 use OCP\Defaults;
 use OCP\IGroup;
 use OCP\IGroupManager;
@@ -59,7 +60,6 @@ use OCP\IServerContainer;
 use OCP\IUser;
 use OCP\Settings\IManager;
 use OCP\Util;
-use Psr\Container\ContainerInterface;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\EventDispatcher\GenericEvent;
 
@@ -94,30 +94,30 @@ class Application extends App implements IBootstrap {
                        }
                        return $isSubAdmin;
                });
-               $context->registerService('userCertificateManager', function (ContainerInterface $c) {
+               $context->registerService('userCertificateManager', function (IAppContainer $appContainer) {
                        /** @var IServerContainer $serverContainer */
-                       $serverContainer = $c->get(IServerContainer::class);
+                       $serverContainer = $appContainer->get(IServerContainer::class);
                        return $serverContainer->getCertificateManager();
                }, false);
-               $context->registerService('systemCertificateManager', function (ContainerInterface $c) {
+               $context->registerService('systemCertificateManager', function (IAppContainer $appContainer) {
                        /** @var IServerContainer $serverContainer */
-                       $serverContainer = $c->query('ServerContainer');
+                       $serverContainer = $appContainer->query('ServerContainer');
                        return $serverContainer->getCertificateManager(null);
                }, false);
-               $context->registerService(IProvider::class, function (ContainerInterface $c) {
+               $context->registerService(IProvider::class, function (IAppContainer $appContainer) {
                        /** @var IServerContainer $serverContainer */
-                       $serverContainer = $c->query(IServerContainer::class);
+                       $serverContainer = $appContainer->query(IServerContainer::class);
                        return $serverContainer->query(IProvider::class);
                });
-               $context->registerService(IManager::class, function (ContainerInterface $c) {
+               $context->registerService(IManager::class, function (IAppContainer $appContainer) {
                        /** @var IServerContainer $serverContainer */
-                       $serverContainer = $c->query(IServerContainer::class);
+                       $serverContainer = $appContainer->query(IServerContainer::class);
                        return $serverContainer->getSettingsManager();
                });
 
-               $context->registerService(NewUserMailHelper::class, function (ContainerInterface $c) {
+               $context->registerService(NewUserMailHelper::class, function (IAppContainer $appContainer) {
                        /** @var Server $server */
-                       $server = $c->query(IServerContainer::class);
+                       $server = $appContainer->query(IServerContainer::class);
                        /** @var Defaults $defaults */
                        $defaults = $server->query(Defaults::class);
 
@@ -136,13 +136,13 @@ class Application extends App implements IBootstrap {
        }
 
        public function boot(IBootContext $context): void {
-               $context->injectFn(function (EventDispatcherInterface $dispatcher, ContainerInterface $container) {
-                       $dispatcher->addListener('app_password_created', function (GenericEvent $event) use ($container) {
+               $context->injectFn(function (EventDispatcherInterface $dispatcher, IAppContainer $appContainer) {
+                       $dispatcher->addListener('app_password_created', function (GenericEvent $event) use ($appContainer) {
                                if (($token = $event->getSubject()) instanceof IToken) {
                                        /** @var IActivityManager $activityManager */
-                                       $activityManager = $container->get(IActivityManager::class);
+                                       $activityManager = $appContainer->get(IActivityManager::class);
                                        /** @var ILogger $logger */
-                                       $logger = $container->get(ILogger::class);
+                                       $logger = $appContainer->get(ILogger::class);
 
                                        $activity = $activityManager->generateEvent();
                                        $activity->setApp('settings')
index c369c9574420b12889f656d68c8a56aac256adf2..48f89de3c372512013d6de85e5d55838b42281bb 100644 (file)
@@ -35,6 +35,7 @@ use OCP\AppFramework\App;
 use OCP\AppFramework\Bootstrap\IBootContext;
 use OCP\AppFramework\Bootstrap\IBootstrap;
 use OCP\AppFramework\Bootstrap\IRegistrationContext;
+use OCP\AppFramework\IAppContainer;
 use OCP\AppFramework\QueryException;
 use OCP\IConfig;
 use OCP\IGroupManager;
@@ -43,7 +44,6 @@ use OCP\IUser;
 use OCP\IUserSession;
 use OCP\Notification\IManager as INotificationManager;
 use OCP\Util;
-use Psr\Container\ContainerInterface;
 
 class Application extends App implements IBootstrap {
        public function __construct() {
@@ -59,7 +59,7 @@ class Application extends App implements IBootstrap {
                                                                         IUserSession $userSession,
                                                                         IAppManager $appManager,
                                                                         IGroupManager $groupManager,
-                                                                        ContainerInterface $container,
+                                                                        IAppContainer $appContainer,
                                                                         ILogger $logger) {
                        if ($config->getSystemValue('updatechecker', true) !== true) {
                                // Updater check is disabled
@@ -78,7 +78,7 @@ class Application extends App implements IBootstrap {
                        if (!$appManager->isEnabledForUser('notifications') &&
                                $groupManager->isAdmin($user->getUID())) {
                                try {
-                                       $updateChecker = $container->get(UpdateChecker::class);
+                                       $updateChecker = $appContainer->get(UpdateChecker::class);
                                } catch (QueryException $e) {
                                        $logger->logException($e);
                                        return;
index fb501eedd7929ed32f0cddc53fba6567ebdf98f0..7086bb08ee557387cef542b6cbc855aec5447c61 100644 (file)
@@ -42,13 +42,13 @@ use OCP\AppFramework\App;
 use OCP\AppFramework\Bootstrap\IBootContext;
 use OCP\AppFramework\Bootstrap\IBootstrap;
 use OCP\AppFramework\Bootstrap\IRegistrationContext;
+use OCP\AppFramework\IAppContainer;
 use OCP\IConfig;
 use OCP\IGroupManager;
 use OCP\IL10N;
 use OCP\IServerContainer;
 use OCP\IUserSession;
 use OCP\Notification\IManager as INotificationManager;
-use Psr\Container\ContainerInterface;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 
 class Application extends App implements IBootstrap {
@@ -59,17 +59,17 @@ class Application extends App implements IBootstrap {
                /**
                 * Controller
                 */
-               $container->registerService('RenewPasswordController', function (ContainerInterface $c) {
+               $container->registerService('RenewPasswordController', function (IAppContainer $appContainer) {
                        /** @var IServerContainer $server */
-                       $server = $c->get(IServerContainer::class);
+                       $server = $appContainer->get(IServerContainer::class);
 
                        return new RenewPasswordController(
-                               $c->get('AppName'),
+                               $appContainer->get('AppName'),
                                $server->getRequest(),
-                               $c->get('UserManager'),
+                               $appContainer->get('UserManager'),
                                $server->getConfig(),
-                               $c->get(IL10N::class),
-                               $c->get('Session'),
+                               $appContainer->get(IL10N::class),
+                               $appContainer->get('Session'),
                                $server->getURLGenerator()
                        );
                });
@@ -86,7 +86,7 @@ class Application extends App implements IBootstrap {
                $context->injectFn(function (IConfig $config,
                                                                         INotificationManager $notificationManager,
                                                                         IUserSession $userSession,
-                                                                        ContainerInterface $container,
+                                                                        IAppContainer $appContainer,
                                                                         EventDispatcherInterface $dispatcher,
                                                                         IGroupManager $groupManager) {
                        $helper = new Helper($config);
@@ -96,8 +96,8 @@ class Application extends App implements IBootstrap {
 
                                $notificationManager->registerNotifierService(Notifier::class);
 
-                               $userPluginManager = $container->get(UserPluginManager::class);
-                               $groupPluginManager = $container->get(GroupPluginManager::class);
+                               $userPluginManager = $appContainer->get(UserPluginManager::class);
+                               $groupPluginManager = $appContainer->get(GroupPluginManager::class);
 
                                $userBackend = new User_Proxy(
                                        $configPrefixes, $ldapWrapper, $config, $notificationManager, $userSession, $userPluginManager
@@ -123,7 +123,7 @@ class Application extends App implements IBootstrap {
                );
        }
 
-       private function registerBackendDependents(ContainerInterface $appContainer, EventDispatcherInterface $dispatcher) {
+       private function registerBackendDependents(IAppContainer $appContainer, EventDispatcherInterface $dispatcher) {
                $dispatcher->addListener(
                        'OCA\\Files_External::loadAdditionalBackends',
                        function () use ($appContainer) {
index 7c2582a7269bf70a7572f799387eca3f7afa121d..45aaf167e75ac08e7fbf605582809dae09988f23 100644 (file)
@@ -26,23 +26,23 @@ declare(strict_types=1);
 namespace OC\AppFramework\Bootstrap;
 
 use OCP\AppFramework\Bootstrap\IBootContext;
+use OCP\AppFramework\IAppContainer;
 use OCP\IServerContainer;
-use Psr\Container\ContainerInterface;
 
 class BootContext implements IBootContext {
 
-       /** @var ContainerInterface */
+       /** @var IAppContainer */
        private $appContainer;
 
-       public function __construct(ContainerInterface $appContainer) {
+       public function __construct(IAppContainer $appContainer) {
                $this->appContainer = $appContainer;
        }
 
-       public function getAppContainer(): ContainerInterface {
+       public function getAppContainer(): IAppContainer {
                return $this->appContainer;
        }
 
-       public function getServerContainer(): ContainerInterface {
+       public function getServerContainer(): IServerContainer {
                return $this->appContainer->get(IServerContainer::class);
        }
 
index de1cbcb64e82988321364c8a62721e6c949bffa3..2f55fd451406340121cc50019438a588fcd3b937 100644 (file)
@@ -120,7 +120,6 @@ class App {
        /**
         * @return IAppContainer
         * @since 6.0.0
-        * @todo make this return a ContainerInterface as well
         */
        public function getContainer(): IAppContainer {
                return $this->container;
index 86232cef4ad1e5018b8bb07b5d4db0f86e560272..80a4edf1cd6ad46a5513d3069113b3dc3bdcba6b 100644 (file)
@@ -28,7 +28,6 @@ namespace OCP\AppFramework\Bootstrap;
 use OCP\AppFramework\IAppContainer;
 use OCP\IServerContainer;
 use Psr\Container\ContainerExceptionInterface;
-use Psr\Container\ContainerInterface;
 use Throwable;
 
 /**
@@ -41,20 +40,20 @@ interface IBootContext {
         *
         * Useful to register and query app-specific services
         *
-        * @return ContainerInterface|IAppContainer
+        * @return IAppContainer
         * @since 20.0.0
         */
-       public function getAppContainer(): ContainerInterface;
+       public function getAppContainer(): IAppContainer;
 
        /**
         * Get hold of the server DI container
         *
         * Useful to register and query system-wide services
         *
-        * @return ContainerInterface|IServerContainer
+        * @return IServerContainer
         * @since 20.0.0
         */
-       public function getServerContainer(): ContainerInterface;
+       public function getServerContainer(): IServerContainer;
 
        /**
         * Invoke the given callable and inject all parameters based on their types