From c9253cce6cacedc19dbb04d8dd89a3da1473ef20 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 30 Jan 2020 13:30:45 +0100 Subject: [PATCH] Move personal settings to proper registration Signed-off-by: Roeland Jago Douma --- apps/settings/appinfo/info.xml | 5 +++ .../composer/composer/autoload_classmap.php | 10 ++--- .../composer/composer/autoload_static.php | 10 ++--- .../lib/Settings/Personal/Additional.php | 2 +- .../lib/Settings/Personal/PersonalInfo.php | 2 +- .../Settings/Personal/Security/Authtokens.php | 2 +- .../Settings/Personal/Security/Password.php | 2 +- .../lib/Settings/Personal/ServerDevNotice.php | 2 +- .../AdminSettingsControllerTest.php | 2 +- .../Personal/Security/AuthtokensTest.php | 5 +-- .../Personal/Security/PasswordTest.php | 6 +-- lib/private/Settings/Manager.php | 37 +------------------ tests/lib/Settings/ManagerTest.php | 25 ++++++++----- 13 files changed, 43 insertions(+), 67 deletions(-) diff --git a/apps/settings/appinfo/info.xml b/apps/settings/appinfo/info.xml index d86e5395ef..d77d8690b4 100644 --- a/apps/settings/appinfo/info.xml +++ b/apps/settings/appinfo/info.xml @@ -24,6 +24,11 @@ OCA\Settings\Sections\Admin\Security OCA\Settings\Sections\Admin\Server OCA\Settings\Sections\Admin\Sharing + OCA\Settings\Settings\Personal\Additional + OCA\Settings\Settings\Personal\PersonalInfo + OCA\Settings\Settings\Personal\ServerDevNotice + OCA\Settings\Settings\Personal\Security\Authtokens + OCA\Settings\Settings\Personal\Security\Password OCA\Settings\Settings\Personal\Security\TwoFactor OCA\Settings\Sections\Personal\PersonalInfo OCA\Settings\Sections\Personal\Security diff --git a/apps/settings/composer/composer/autoload_classmap.php b/apps/settings/composer/composer/autoload_classmap.php index 3e83c20bd3..c68f3d8527 100644 --- a/apps/settings/composer/composer/autoload_classmap.php +++ b/apps/settings/composer/composer/autoload_classmap.php @@ -36,11 +36,6 @@ return array( 'OCA\\Settings\\Hooks' => $baseDir . '/../lib/Hooks.php', 'OCA\\Settings\\Mailer\\NewUserMailHelper' => $baseDir . '/../lib/Mailer/NewUserMailHelper.php', 'OCA\\Settings\\Middleware\\SubadminMiddleware' => $baseDir . '/../lib/Middleware/SubadminMiddleware.php', - 'OCA\\Settings\\Personal\\Additional' => $baseDir . '/../lib/Settings/Personal/Additional.php', - 'OCA\\Settings\\Personal\\PersonalInfo' => $baseDir . '/../lib/Settings/Personal/PersonalInfo.php', - 'OCA\\Settings\\Personal\\Security\\Authtokens' => $baseDir . '/../lib/Settings/Personal/Security/Authtokens.php', - 'OCA\\Settings\\Personal\\Security\\Password' => $baseDir . '/../lib/Settings/Personal/Security/Password.php', - 'OCA\\Settings\\Personal\\ServerDevNotice' => $baseDir . '/../lib/Settings/Personal/ServerDevNotice.php', 'OCA\\Settings\\Sections\\Admin\\Additional' => $baseDir . '/../lib/Sections/Admin/Additional.php', 'OCA\\Settings\\Sections\\Admin\\Groupware' => $baseDir . '/../lib/Sections/Admin/Groupware.php', 'OCA\\Settings\\Sections\\Admin\\Overview' => $baseDir . '/../lib/Sections/Admin/Overview.php', @@ -50,5 +45,10 @@ return array( 'OCA\\Settings\\Sections\\Personal\\PersonalInfo' => $baseDir . '/../lib/Sections/Personal/PersonalInfo.php', 'OCA\\Settings\\Sections\\Personal\\Security' => $baseDir . '/../lib/Sections/Personal/Security.php', 'OCA\\Settings\\Sections\\Personal\\SyncClients' => $baseDir . '/../lib/Sections/Personal/SyncClients.php', + 'OCA\\Settings\\Settings\\Personal\\Additional' => $baseDir . '/../lib/Settings/Personal/Additional.php', + 'OCA\\Settings\\Settings\\Personal\\PersonalInfo' => $baseDir . '/../lib/Settings/Personal/PersonalInfo.php', + 'OCA\\Settings\\Settings\\Personal\\Security\\Authtokens' => $baseDir . '/../lib/Settings/Personal/Security/Authtokens.php', + 'OCA\\Settings\\Settings\\Personal\\Security\\Password' => $baseDir . '/../lib/Settings/Personal/Security/Password.php', 'OCA\\Settings\\Settings\\Personal\\Security\\TwoFactor' => $baseDir . '/../lib/Settings/Personal/Security/TwoFactor.php', + 'OCA\\Settings\\Settings\\Personal\\ServerDevNotice' => $baseDir . '/../lib/Settings/Personal/ServerDevNotice.php', ); diff --git a/apps/settings/composer/composer/autoload_static.php b/apps/settings/composer/composer/autoload_static.php index a76fe97eec..41b2ad2727 100644 --- a/apps/settings/composer/composer/autoload_static.php +++ b/apps/settings/composer/composer/autoload_static.php @@ -51,11 +51,6 @@ class ComposerStaticInitSettings 'OCA\\Settings\\Hooks' => __DIR__ . '/..' . '/../lib/Hooks.php', 'OCA\\Settings\\Mailer\\NewUserMailHelper' => __DIR__ . '/..' . '/../lib/Mailer/NewUserMailHelper.php', 'OCA\\Settings\\Middleware\\SubadminMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/SubadminMiddleware.php', - 'OCA\\Settings\\Personal\\Additional' => __DIR__ . '/..' . '/../lib/Settings/Personal/Additional.php', - 'OCA\\Settings\\Personal\\PersonalInfo' => __DIR__ . '/..' . '/../lib/Settings/Personal/PersonalInfo.php', - 'OCA\\Settings\\Personal\\Security\\Authtokens' => __DIR__ . '/..' . '/../lib/Settings/Personal/Security/Authtokens.php', - 'OCA\\Settings\\Personal\\Security\\Password' => __DIR__ . '/..' . '/../lib/Settings/Personal/Security/Password.php', - 'OCA\\Settings\\Personal\\ServerDevNotice' => __DIR__ . '/..' . '/../lib/Settings/Personal/ServerDevNotice.php', 'OCA\\Settings\\Sections\\Admin\\Additional' => __DIR__ . '/..' . '/../lib/Sections/Admin/Additional.php', 'OCA\\Settings\\Sections\\Admin\\Groupware' => __DIR__ . '/..' . '/../lib/Sections/Admin/Groupware.php', 'OCA\\Settings\\Sections\\Admin\\Overview' => __DIR__ . '/..' . '/../lib/Sections/Admin/Overview.php', @@ -65,7 +60,12 @@ class ComposerStaticInitSettings 'OCA\\Settings\\Sections\\Personal\\PersonalInfo' => __DIR__ . '/..' . '/../lib/Sections/Personal/PersonalInfo.php', 'OCA\\Settings\\Sections\\Personal\\Security' => __DIR__ . '/..' . '/../lib/Sections/Personal/Security.php', 'OCA\\Settings\\Sections\\Personal\\SyncClients' => __DIR__ . '/..' . '/../lib/Sections/Personal/SyncClients.php', + 'OCA\\Settings\\Settings\\Personal\\Additional' => __DIR__ . '/..' . '/../lib/Settings/Personal/Additional.php', + 'OCA\\Settings\\Settings\\Personal\\PersonalInfo' => __DIR__ . '/..' . '/../lib/Settings/Personal/PersonalInfo.php', + 'OCA\\Settings\\Settings\\Personal\\Security\\Authtokens' => __DIR__ . '/..' . '/../lib/Settings/Personal/Security/Authtokens.php', + 'OCA\\Settings\\Settings\\Personal\\Security\\Password' => __DIR__ . '/..' . '/../lib/Settings/Personal/Security/Password.php', 'OCA\\Settings\\Settings\\Personal\\Security\\TwoFactor' => __DIR__ . '/..' . '/../lib/Settings/Personal/Security/TwoFactor.php', + 'OCA\\Settings\\Settings\\Personal\\ServerDevNotice' => __DIR__ . '/..' . '/../lib/Settings/Personal/ServerDevNotice.php', ); public static function getInitializer(ClassLoader $loader) diff --git a/apps/settings/lib/Settings/Personal/Additional.php b/apps/settings/lib/Settings/Personal/Additional.php index 2fc710b88c..ab128afe9a 100644 --- a/apps/settings/lib/Settings/Personal/Additional.php +++ b/apps/settings/lib/Settings/Personal/Additional.php @@ -22,7 +22,7 @@ * */ -namespace OCA\Settings\Personal; +namespace OCA\Settings\Settings\Personal; use OCP\AppFramework\Http\TemplateResponse; diff --git a/apps/settings/lib/Settings/Personal/PersonalInfo.php b/apps/settings/lib/Settings/Personal/PersonalInfo.php index a91be78243..c8d9b3f812 100644 --- a/apps/settings/lib/Settings/Personal/PersonalInfo.php +++ b/apps/settings/lib/Settings/Personal/PersonalInfo.php @@ -29,7 +29,7 @@ * */ -namespace OCA\Settings\Personal; +namespace OCA\Settings\Settings\Personal; use OC\Accounts\AccountManager; use OCA\FederatedFileSharing\AppInfo\Application; diff --git a/apps/settings/lib/Settings/Personal/Security/Authtokens.php b/apps/settings/lib/Settings/Personal/Security/Authtokens.php index 1944670b2e..9301976666 100644 --- a/apps/settings/lib/Settings/Personal/Security/Authtokens.php +++ b/apps/settings/lib/Settings/Personal/Security/Authtokens.php @@ -25,7 +25,7 @@ declare(strict_types=1); * */ -namespace OCA\Settings\Personal\Security; +namespace OCA\Settings\Settings\Personal\Security; use OCP\IUserSession; use function array_map; diff --git a/apps/settings/lib/Settings/Personal/Security/Password.php b/apps/settings/lib/Settings/Personal/Security/Password.php index 91d8b9228e..06e82f6e4c 100644 --- a/apps/settings/lib/Settings/Personal/Security/Password.php +++ b/apps/settings/lib/Settings/Personal/Security/Password.php @@ -26,7 +26,7 @@ declare(strict_types=1); * */ -namespace OCA\Settings\Personal\Security; +namespace OCA\Settings\Settings\Personal\Security; use OCP\AppFramework\Http\TemplateResponse; use OCP\IUserManager; diff --git a/apps/settings/lib/Settings/Personal/ServerDevNotice.php b/apps/settings/lib/Settings/Personal/ServerDevNotice.php index b5cf8c2c49..f69863fe35 100644 --- a/apps/settings/lib/Settings/Personal/ServerDevNotice.php +++ b/apps/settings/lib/Settings/Personal/ServerDevNotice.php @@ -23,7 +23,7 @@ * */ -namespace OCA\Settings\Personal; +namespace OCA\Settings\Settings\Personal; use OCP\AppFramework\Http\TemplateResponse; use OCP\Settings\ISettings; diff --git a/apps/settings/tests/Controller/AdminSettingsControllerTest.php b/apps/settings/tests/Controller/AdminSettingsControllerTest.php index ee8672691f..9a82fd9785 100644 --- a/apps/settings/tests/Controller/AdminSettingsControllerTest.php +++ b/apps/settings/tests/Controller/AdminSettingsControllerTest.php @@ -28,7 +28,7 @@ namespace OCA\Settings\Tests\Controller; use OCA\Settings\Controller\AdminSettingsController; -use OCA\Settings\Personal\ServerDevNotice; +use OCA\Settings\Settings\Personal\ServerDevNotice; use OCP\AppFramework\Http\TemplateResponse; use OCP\Group\ISubAdmin; use OCP\IGroupManager; diff --git a/apps/settings/tests/Settings/Personal/Security/AuthtokensTest.php b/apps/settings/tests/Settings/Personal/Security/AuthtokensTest.php index 6fd7cf22ef..1f85f49106 100644 --- a/apps/settings/tests/Settings/Personal/Security/AuthtokensTest.php +++ b/apps/settings/tests/Settings/Personal/Security/AuthtokensTest.php @@ -29,8 +29,7 @@ namespace OCA\Settings\Tests\Settings\Personal\Security; use OC\Authentication\Token\DefaultToken; use OC\Authentication\Token\IProvider as IAuthTokenProvider; -use OCA\Settings\Personal\Password; -use OCA\Settings\Personal\Security\Authtokens; +use OCA\Settings\Settings\Personal\Security\Authtokens; use OCP\AppFramework\Http\TemplateResponse; use OCP\IInitialStateService; use OCP\ISession; @@ -55,7 +54,7 @@ class AuthtokensTest extends TestCase { /** @var string */ private $uid; - /** @var Security\Authtokens */ + /** @var Authtokens */ private $section; protected function setUp(): void { diff --git a/apps/settings/tests/Settings/Personal/Security/PasswordTest.php b/apps/settings/tests/Settings/Personal/Security/PasswordTest.php index 160e4ebf84..8eb4c022e7 100644 --- a/apps/settings/tests/Settings/Personal/Security/PasswordTest.php +++ b/apps/settings/tests/Settings/Personal/Security/PasswordTest.php @@ -25,9 +25,9 @@ declare(strict_types=1); * */ -namespace OCA\Settings\Tests\Settings\Personal; +namespace OCA\Settings\Tests\Settings\Personal\Security; -use OCA\Settings\Personal\Security\Password; +use OCA\Settings\Settings\Personal\Security\Password; use OCP\AppFramework\Http\TemplateResponse; use OCP\IUser; use OCP\IUserManager; @@ -69,7 +69,7 @@ class PasswordTest extends TestCase { $form = $this->section->getForm(); - $expected = new TemplateResponse('settings', 'settings/personal/security', [ + $expected = new TemplateResponse('settings', 'settings/personal/security/password', [ 'passwordChangeSupported' => true, ]); $this->assertEquals($expected, $form); diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index 157ab9db1d..8018ecaba6 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -175,7 +175,7 @@ class Manager implements IManager { try { /** @var ISettings $setting */ - $setting = \OC::$server->query($class); + $setting = $this->container->query($class); } catch (QueryException $e) { $this->log->logException($e, ['level' => ILogger::INFO]); continue; @@ -272,39 +272,6 @@ class Manager implements IManager { return $forms; } - /** - * @param string $section - * - * @return ISection[] - */ - private function getBuiltInPersonalSettings($section): array { - $forms = []; - - if ($section === 'personal-info') { - /** @var ISettings $form */ - $form = $this->container->query(\OCA\Settings\Personal\PersonalInfo::class); - $forms[$form->getPriority()] = [$form]; - $form = new \OCA\Settings\Personal\ServerDevNotice(); - $forms[$form->getPriority()] = [$form]; - } - if ($section === 'security') { - /** @var ISettings $form */ - $form = $this->container->query(\OCA\Settings\Personal\Security\Password::class); - $forms[$form->getPriority()] = [$form]; - - /** @var ISettings $form */ - $form = $this->container->query(\OCA\Settings\Personal\Security\Authtokens::class); - $forms[$form->getPriority()] = [$form]; - } - if ($section === 'additional') { - /** @var ISettings $form */ - $form = $this->container->query(\OCA\Settings\Personal\Additional::class); - $forms[$form->getPriority()] = [$form]; - } - - return $forms; - } - /** * @inheritdoc */ @@ -380,7 +347,7 @@ class Manager implements IManager { * @inheritdoc */ public function getPersonalSettings($section): array { - $settings = $this->getBuiltInPersonalSettings($section); + $settings = []; $appSettings = $this->getSettings('personal', $section); foreach ($appSettings as $setting) { diff --git a/tests/lib/Settings/ManagerTest.php b/tests/lib/Settings/ManagerTest.php index 7972a4bdbb..06eafb6528 100644 --- a/tests/lib/Settings/ManagerTest.php +++ b/tests/lib/Settings/ManagerTest.php @@ -24,15 +24,14 @@ namespace OCA\Settings\Tests\AppInfo; use OC\Settings\Manager; -use OC\Settings\Section; use OCA\Settings\Admin\Sharing; -use OCA\Settings\Personal\Password; use OCP\IDBConnection; use OCP\IL10N; use OCP\ILogger; use OCP\IServerContainer; use OCP\IURLGenerator; use OCP\L10N\IFactory; +use OCP\Settings\ISettings; use OCP\Settings\ISubAdminSettings; use Test\TestCase; @@ -149,21 +148,27 @@ class ManagerTest extends TestCase { } public function testGetPersonalSettings() { - $section = $this->createMock(Password::class); - $section->expects($this->once()) - ->method('getPriority') + $section = $this->createMock(ISettings::class); + $section->method('getPriority') ->willReturn(16); - $section2 = $this->createMock(Security\Authtokens::class); - $section2->expects($this->once()) - ->method('getPriority') + $section->method('getSection') + ->willReturn('security'); + $section2 = $this->createMock(ISettings::class); + $section2->method('getPriority') ->willReturn(100); + $section2->method('getSection') + ->willReturn('security'); + + $this->manager->registerSetting('personal', 'section1'); + $this->manager->registerSetting('personal', 'section2'); + $this->container->expects($this->at(0)) ->method('query') - ->with(Password::class) + ->with('section1') ->willReturn($section); $this->container->expects($this->at(1)) ->method('query') - ->with(Security\Authtokens::class) + ->with('section2') ->willReturn($section2); $settings = $this->manager->getPersonalSettings('security');