diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index 5b6bea63c6b61..4ab5cf61965b1 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -357,7 +357,8 @@ public function getPersonalSections(): array { ]; $legacyForms = \OC_App::getForms('personal'); - if (!empty($legacyForms) && $this->hasLegacyPersonalSettingsToRender($legacyForms)) { + if ((!empty($legacyForms) && $this->hasLegacyPersonalSettingsToRender($legacyForms)) + || count($this->getPersonalSettings('additional')) > 1) { $sections[98] = [new Section('additional', $this->l->t('Additional settings'), 0, $this->url->imagePath('core', 'actions/settings-dark.svg'))]; } diff --git a/tests/lib/Settings/ManagerTest.php b/tests/lib/Settings/ManagerTest.php index 761f5f9a5c19f..3d8ae130dbfb7 100644 --- a/tests/lib/Settings/ManagerTest.php +++ b/tests/lib/Settings/ManagerTest.php @@ -116,6 +116,10 @@ public function testGetPersonalSections() { $this->manager->registerSection('personal', \OCA\WorkflowEngine\Settings\Section::class); + $this->container->method('query') + ->with(\OCA\Settings\Personal\Additional::class) + ->willReturn($this->createMock(\OCA\Settings\Personal\Additional::class)); + $this->url->expects($this->exactly(3)) ->method('imagePath') ->willReturnMap([ @@ -183,6 +187,10 @@ public function testGetPersonalSectionsEmptySection() { ['core', 'clients/phone.svg', '3'], ]); + $this->container->method('query') + ->with(\OCA\Settings\Personal\Additional::class) + ->willReturn($this->createMock(\OCA\Settings\Personal\Additional::class)); + $this->assertArraySubset([ 0 => [new Section('personal-info', 'Personal info', 0, '1')], 5 => [new Section('security', 'Security', 0, '2')], @@ -290,6 +298,10 @@ public function testSameSectionAsPersonalAndAdmin() { ['settings', 'help.svg', '4'], ]); + $this->container->method('query') + ->with(\OCA\Settings\Personal\Additional::class) + ->willReturn($this->createMock(\OCA\Settings\Personal\Additional::class)); + $this->assertEquals([ 0 => [new Section('personal-info', 'Personal info', 0, '1')], 5 => [new Section('security', 'Security', 0, '2')],