Merge pull request #19217 from nextcloud/enh/settings/personal

Personal settings cleanup
This commit is contained in:
Roeland Jago Douma 2020-01-31 08:17:00 +01:00 committed by GitHub
commit 2f91ac0865
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 49 additions and 76 deletions

View file

@ -24,6 +24,11 @@
<admin-section>OCA\Settings\Sections\Admin\Security</admin-section>
<admin-section>OCA\Settings\Sections\Admin\Server</admin-section>
<admin-section>OCA\Settings\Sections\Admin\Sharing</admin-section>
<personal>OCA\Settings\Settings\Personal\Additional</personal>
<personal>OCA\Settings\Settings\Personal\PersonalInfo</personal>
<personal>OCA\Settings\Settings\Personal\ServerDevNotice</personal>
<personal>OCA\Settings\Settings\Personal\Security\Authtokens</personal>
<personal>OCA\Settings\Settings\Personal\Security\Password</personal>
<personal>OCA\Settings\Settings\Personal\Security\TwoFactor</personal>
<personal-section>OCA\Settings\Sections\Personal\PersonalInfo</personal-section>
<personal-section>OCA\Settings\Sections\Personal\Security</personal-section>

View file

@ -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' => $baseDir . '/../lib/Settings/Personal/Security.php',
'OCA\\Settings\\Personal\\Security\\Authtokens' => $baseDir . '/../lib/Settings/Personal/Security/Authtokens.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',
);

View file

@ -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' => __DIR__ . '/..' . '/../lib/Settings/Personal/Security.php',
'OCA\\Settings\\Personal\\Security\\Authtokens' => __DIR__ . '/..' . '/../lib/Settings/Personal/Security/Authtokens.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)

View file

@ -22,7 +22,7 @@
*
*/
namespace OCA\Settings\Personal;
namespace OCA\Settings\Settings\Personal;
use OCP\AppFramework\Http\TemplateResponse;

View file

@ -29,7 +29,7 @@
*
*/
namespace OCA\Settings\Personal;
namespace OCA\Settings\Settings\Personal;
use OC\Accounts\AccountManager;
use OCA\FederatedFileSharing\AppInfo\Application;

View file

@ -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;

View file

@ -1,4 +1,5 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
*
@ -25,13 +26,13 @@
*
*/
namespace OCA\Settings\Personal;
namespace OCA\Settings\Settings\Personal\Security;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IUserManager;
use OCP\Settings\ISettings;
class Security implements ISettings {
class Password implements ISettings {
/** @var IUserManager */
private $userManager;
@ -52,7 +53,7 @@ class Security implements ISettings {
$passwordChangeSupported = $user->canChangePassword();
}
return new TemplateResponse('settings', 'settings/personal/security', [
return new TemplateResponse('settings', 'settings/personal/security/password', [
'passwordChangeSupported' => $passwordChangeSupported,
]);
}

View file

@ -23,7 +23,7 @@
*
*/
namespace OCA\Settings\Personal;
namespace OCA\Settings\Settings\Personal;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Settings\ISettings;

View file

@ -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;

View file

@ -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\Security;
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 {

View file

@ -1,5 +1,4 @@
<?php
declare(strict_types=1);
/**
@ -26,19 +25,16 @@ declare(strict_types=1);
*
*/
namespace OCA\Settings\Tests\Settings\Personal;
namespace OCA\Settings\Tests\Settings\Personal\Security;
use OC\Authentication\TwoFactorAuth\ProviderLoader;
use OCA\Settings\Personal\Security;
use OCA\Settings\Settings\Personal\Security\Password;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IConfig;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SecurityTest extends TestCase {
class PasswordTest extends TestCase {
/** @var IUserManager|MockObject */
private $userManager;
@ -46,7 +42,7 @@ class SecurityTest extends TestCase {
/** @var string */
private $uid;
/** @var Security */
/** @var Password */
private $section;
protected function setUp(): void {
@ -55,7 +51,7 @@ class SecurityTest extends TestCase {
$this->userManager = $this->createMock(IUserManager::class);
$this->uid = 'test123';
$this->section = new Security(
$this->section = new Password(
$this->userManager,
$this->uid
);
@ -73,7 +69,7 @@ class SecurityTest 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);

View file

@ -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::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) {

View file

@ -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\Security;
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(Security::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(Security::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');