]> source.dussan.org Git - nextcloud-server.git/commitdiff
Migrate Settings to new bootstrap mechanism
authorChristoph Wurst <christoph@winzerhof-wurst.at>
Mon, 8 Jun 2020 17:03:46 +0000 (19:03 +0200)
committerChristoph Wurst <christoph@winzerhof-wurst.at>
Wed, 17 Jun 2020 07:22:22 +0000 (09:22 +0200)
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
apps/settings/lib/AppInfo/Application.php
lib/base.php

index 8f70ca426ad8b782a068caa3b2539cb8d83ffa43..27f51a32f106114325362c04dfa4eafbc084bc56 100644 (file)
@@ -1,4 +1,7 @@
 <?php
+
+declare(strict_types=1);
+
 /**
  * @copyright Copyright (c) 2016, ownCloud, Inc.
  *
@@ -44,6 +47,9 @@ use OCA\Settings\Mailer\NewUserMailHelper;
 use OCA\Settings\Middleware\SubadminMiddleware;
 use OCP\Activity\IManager as IActivityManager;
 use OCP\AppFramework\App;
+use OCP\AppFramework\Bootstrap\IBootContext;
+use OCP\AppFramework\Bootstrap\IBootstrap;
+use OCP\AppFramework\Bootstrap\IRegistrationContext;
 use OCP\Defaults;
 use OCP\IContainer;
 use OCP\IGroup;
@@ -54,7 +60,7 @@ use OCP\Util;
 use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\EventDispatcher\GenericEvent;
 
-class Application extends App {
+class Application extends App implements IBootstrap {
        public const APP_ID = 'settings';
 
        /**
@@ -62,22 +68,22 @@ class Application extends App {
         */
        public function __construct(array $urlParams=[]) {
                parent::__construct(self::APP_ID, $urlParams);
+       }
 
-               $container = $this->getContainer();
-
+       public function register(IRegistrationContext $context): void {
                // Register Middleware
-               $container->registerAlias('SubadminMiddleware', SubadminMiddleware::class);
-               $container->registerMiddleWare('SubadminMiddleware');
+               $context->registerServiceAlias('SubadminMiddleware', SubadminMiddleware::class);
+               $context->registerMiddleware(SubadminMiddleware::class);
 
                /**
                 * Core class wrappers
                 */
                /** FIXME: Remove once OC_User is non-static and mockable */
-               $container->registerService('isAdmin', function () {
+               $context->registerService('isAdmin', function () {
                        return \OC_User::isAdminUser(\OC_User::getUser());
                });
                /** FIXME: Remove once OC_SubAdmin is non-static and mockable */
-               $container->registerService('isSubAdmin', function (IContainer $c) {
+               $context->registerService('isSubAdmin', function (IContainer $c) {
                        $userObject = \OC::$server->getUserSession()->getUser();
                        $isSubAdmin = false;
                        if ($userObject !== null) {
@@ -85,20 +91,20 @@ class Application extends App {
                        }
                        return $isSubAdmin;
                });
-               $container->registerService('userCertificateManager', function (IContainer $c) {
+               $context->registerService('userCertificateManager', function (IContainer $c) {
                        return $c->query('ServerContainer')->getCertificateManager();
                }, false);
-               $container->registerService('systemCertificateManager', function (IContainer $c) {
+               $context->registerService('systemCertificateManager', function (IContainer $c) {
                        return $c->query('ServerContainer')->getCertificateManager(null);
                }, false);
-               $container->registerService(IProvider::class, function (IContainer $c) {
+               $context->registerService(IProvider::class, function (IContainer $c) {
                        return $c->query('ServerContainer')->query(IProvider::class);
                });
-               $container->registerService(IManager::class, function (IContainer $c) {
+               $context->registerService(IManager::class, function (IContainer $c) {
                        return $c->query('ServerContainer')->getSettingsManager();
                });
 
-               $container->registerService(NewUserMailHelper::class, function (IContainer $c) {
+               $context->registerService(NewUserMailHelper::class, function (IContainer $c) {
                        /** @var Server $server */
                        $server = $c->query('ServerContainer');
                        /** @var Defaults $defaults */
@@ -116,9 +122,12 @@ class Application extends App {
                                Util::getDefaultEmailAddress('no-reply')
                        );
                });
+       }
 
+       public function boot(IBootContext $context): void {
                /** @var EventDispatcherInterface $eventDispatcher */
-               $eventDispatcher = $container->getServer()->getEventDispatcher();
+               $eventDispatcher = $context->getServerContainer()->getEventDispatcher();
+               $container = $context->getAppContainer();
                $eventDispatcher->addListener('app_password_created', function (GenericEvent $event) use ($container) {
                        if (($token = $event->getSubject()) instanceof IToken) {
                                /** @var IActivityManager $activityManager */
@@ -141,13 +150,11 @@ class Application extends App {
                                }
                        }
                });
-       }
 
-       public function register() {
                Util::connectHook('OC_User', 'post_setPassword', $this, 'onChangePassword');
                Util::connectHook('OC_User', 'changeUser', $this, 'onChangeInfo');
 
-               $groupManager = $this->getContainer()->getServer()->getGroupManager();
+               $groupManager = $context->getServerContainer()->getGroupManager();
                $groupManager->listen('\OC\Group', 'postRemoveUser',  [$this, 'removeUserFromGroup']);
                $groupManager->listen('\OC\Group', 'postAddUser',  [$this, 'addUserToGroup']);
 
index ab199c09722b8f698746a54f94fd2afbc3bb8cd6..8109e47cdc07cd769159e6bf582c7c550639eb99 100644 (file)
@@ -739,8 +739,6 @@ class OC {
                // Make sure that the application class is not loaded before the database is setup
                if ($systemConfig->getValue("installed", false)) {
                        OC_App::loadApp('settings');
-                       $settings = \OC::$server->query(\OCA\Settings\AppInfo\Application::class);
-                       $settings->register();
                }
 
                //make sure temporary files are cleaned up