From a2c8bfadbc5e5f7d6e2893a2109bc7186d27681d Mon Sep 17 00:00:00 2001 From: Christoph Wurst Date: Mon, 8 Jun 2020 19:27:28 +0200 Subject: [PATCH] Migrate Two-Factor Backup Codes to new bootstrap mechanism Signed-off-by: Christoph Wurst --- apps/twofactor_backupcodes/appinfo/app.php | 29 ----------- .../lib/AppInfo/Application.php | 51 ++++++++++--------- 2 files changed, 27 insertions(+), 53 deletions(-) delete mode 100644 apps/twofactor_backupcodes/appinfo/app.php diff --git a/apps/twofactor_backupcodes/appinfo/app.php b/apps/twofactor_backupcodes/appinfo/app.php deleted file mode 100644 index 2ca0108443..0000000000 --- a/apps/twofactor_backupcodes/appinfo/app.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * @author Christoph Wurst - * @author Joas Schilling - * @author Robin Appelman - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -use OCA\TwoFactorBackupCodes\AppInfo\Application; - -$app = \OC::$server->query(Application::class); -$app->register(); diff --git a/apps/twofactor_backupcodes/lib/AppInfo/Application.php b/apps/twofactor_backupcodes/lib/AppInfo/Application.php index 3cf05073ec..1941cb545a 100644 --- a/apps/twofactor_backupcodes/lib/AppInfo/Application.php +++ b/apps/twofactor_backupcodes/lib/AppInfo/Application.php @@ -1,4 +1,7 @@ * @@ -34,44 +37,44 @@ use OCA\TwoFactorBackupCodes\Listener\ProviderEnabled; use OCA\TwoFactorBackupCodes\Listener\RegistryUpdater; use OCA\TwoFactorBackupCodes\Notifications\Notifier; use OCP\AppFramework\App; +use OCP\AppFramework\Bootstrap\IBootContext; +use OCP\AppFramework\Bootstrap\IBootstrap; +use OCP\AppFramework\Bootstrap\IRegistrationContext; use OCP\Authentication\TwoFactorAuth\IRegistry; use OCP\Notification\IManager; use OCP\Util; -class Application extends App { +class Application extends App implements IBootstrap { + public const APP_ID = 'twofactor_backupcodes'; + public function __construct() { - parent::__construct('twofactor_backupcodes'); + parent::__construct(self::APP_ID); } - /** - * Register the different app parts - */ - public function register() { - $this->registerHooksAndEvents(); - $this->registerNotification(); + public function register(IRegistrationContext $context): void { + $this->registerHooksAndEvents($context); + } + + public function boot(IBootContext $context): void { + Util::connectHook('OC_User', 'post_deleteUser', $this, 'deleteUser'); + + $this->registerNotification( + $context->getAppContainer()->query(IManager::class) + ); } /** * Register the hooks and events */ - public function registerHooksAndEvents() { - Util::connectHook('OC_User', 'post_deleteUser', $this, 'deleteUser'); - - $container = $this->getContainer(); - - /** @var IEventDispatcher $eventDispatcher */ - $eventDispatcher = $container->query(IEventDispatcher::class); - $eventDispatcher->addServiceListener(CodesGenerated::class, ActivityPublisher::class); - $eventDispatcher->addServiceListener(CodesGenerated::class, RegistryUpdater::class); - $eventDispatcher->addServiceListener(CodesGenerated::class, ClearNotifications::class); - $eventDispatcher->addServiceListener(IRegistry::EVENT_PROVIDER_ENABLED, ProviderEnabled::class); - $eventDispatcher->addServiceListener(IRegistry::EVENT_PROVIDER_DISABLED, ProviderDisabled::class); + public function registerHooksAndEvents(IRegistrationContext $context) { + $context->registerEventListener(CodesGenerated::class, ActivityPublisher::class); + $context->registerEventListener(CodesGenerated::class, RegistryUpdater::class); + $context->registerEventListener(CodesGenerated::class, ClearNotifications::class); + $context->registerEventListener(IRegistry::EVENT_PROVIDER_ENABLED, ProviderEnabled::class); + $context->registerEventListener(IRegistry::EVENT_PROVIDER_DISABLED, ProviderDisabled::class); } - public function registerNotification() { - $container = $this->getContainer(); - /** @var IManager $manager */ - $manager = $container->query(IManager::class); + private function registerNotification(IManager $manager) { $manager->registerNotifierService(Notifier::class); }