Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon L <szaimen@e.mail.de>2022-08-31 18:56:11 +0300
committerGitHub <noreply@github.com>2022-08-31 18:56:11 +0300
commitb0f6ca0e0d824281581ff377ddae857c26fd0db2 (patch)
tree9b6f0fa24cb0dd9ccc19053247f8d54dd3a5702f
parentb617f3983a8152f2da018ddba6936dd8381a1f20 (diff)
parent0c90474296f3c062a5ae64225a3ef49480865e1d (diff)
Merge pull request #33756 from nextcloud/enh/noid/admin-settings-directly
add a way to open the admin settings overview directly
-rw-r--r--apps/settings/lib/Controller/CommonSettingsTrait.php7
-rw-r--r--lib/private/NavigationManager.php40
-rw-r--r--tests/acceptance/features/access-levels.feature2
-rw-r--r--tests/acceptance/features/app-files-sharing-link.feature6
-rw-r--r--tests/acceptance/features/app-files-sharing.feature8
-rw-r--r--tests/acceptance/features/app-files-tags.feature6
-rw-r--r--tests/acceptance/features/app-theming.feature4
-rw-r--r--tests/acceptance/features/bootstrap/SettingsMenuContext.php8
-rw-r--r--tests/acceptance/features/header.feature7
-rw-r--r--tests/lib/NavigationManagerTest.php28
10 files changed, 87 insertions, 29 deletions
diff --git a/apps/settings/lib/Controller/CommonSettingsTrait.php b/apps/settings/lib/Controller/CommonSettingsTrait.php
index 2eb7b4ccf99..4a15b0c7a32 100644
--- a/apps/settings/lib/Controller/CommonSettingsTrait.php
+++ b/apps/settings/lib/Controller/CommonSettingsTrait.php
@@ -134,7 +134,12 @@ trait CommonSettingsTrait {
}
private function getIndexResponse($type, $section) {
- $this->navigationManager->setActiveEntry('settings');
+ if ($type === 'personal') {
+ $this->navigationManager->setActiveEntry('settings');
+ } elseif ($type === 'admin') {
+ $this->navigationManager->setActiveEntry('admin_settings');
+ }
+
$templateParams = [];
$templateParams = array_merge($templateParams, $this->getNavigationParameters($type, $section));
$templateParams = array_merge($templateParams, $this->getSettings($section));
diff --git a/lib/private/NavigationManager.php b/lib/private/NavigationManager.php
index 2ffd25df9b8..bbf28d2c142 100644
--- a/lib/private/NavigationManager.php
+++ b/lib/private/NavigationManager.php
@@ -211,17 +211,37 @@ class NavigationManager implements INavigationManager {
'icon' => $this->urlGenerator->imagePath('settings', 'apps.svg'),
'name' => $l->t('Apps'),
]);
- }
- // Personal and (if applicable) admin settings
- $this->add([
- 'type' => 'settings',
- 'id' => 'settings',
- 'order' => 2,
- 'href' => $this->urlGenerator->linkToRoute('settings.PersonalSettings.index'),
- 'name' => $l->t('Settings'),
- 'icon' => $this->urlGenerator->imagePath('settings', 'admin.svg'),
- ]);
+ // Personal settings
+ $this->add([
+ 'type' => 'settings',
+ 'id' => 'settings',
+ 'order' => 2,
+ 'href' => $this->urlGenerator->linkToRoute('settings.PersonalSettings.index'),
+ 'name' => $l->t('Personal settings'),
+ 'icon' => $this->urlGenerator->imagePath('settings', 'personal.svg'),
+ ]);
+
+ // Admin settings
+ $this->add([
+ 'type' => 'settings',
+ 'id' => 'admin_settings',
+ 'order' => 3,
+ 'href' => $this->urlGenerator->linkToRoute('settings.AdminSettings.index', ['section' => 'overview']),
+ 'name' => $l->t('Admin settings'),
+ 'icon' => $this->urlGenerator->imagePath('settings', 'admin.svg'),
+ ]);
+ } else {
+ // Personal settings
+ $this->add([
+ 'type' => 'settings',
+ 'id' => 'settings',
+ 'order' => 2,
+ 'href' => $this->urlGenerator->linkToRoute('settings.PersonalSettings.index'),
+ 'name' => $l->t('Settings'),
+ 'icon' => $this->urlGenerator->imagePath('settings', 'admin.svg'),
+ ]);
+ }
$logoutUrl = \OC_User::getLogoutUrl($this->urlGenerator);
if ($logoutUrl !== '') {
diff --git a/tests/acceptance/features/access-levels.feature b/tests/acceptance/features/access-levels.feature
index 9d5695897c0..de34a17baea 100644
--- a/tests/acceptance/features/access-levels.feature
+++ b/tests/acceptance/features/access-levels.feature
@@ -18,6 +18,6 @@ Feature: access-levels
Scenario: admin users can see admin-level items on the Settings page
Given I am logged in as the admin
- When I visit the settings page
+ When I visit the admin settings page
Then I see that the "Personal" settings panel is shown
And I see that the "Administration" settings panel is shown
diff --git a/tests/acceptance/features/app-files-sharing-link.feature b/tests/acceptance/features/app-files-sharing-link.feature
index 62f0c73a6c2..ac6ff058fec 100644
--- a/tests/acceptance/features/app-files-sharing-link.feature
+++ b/tests/acceptance/features/app-files-sharing-link.feature
@@ -178,7 +178,7 @@ Feature: app-files-sharing-link
And I see that the file list contains a file named "farewell.txt"
And I share "farewell.txt" with "user0"
And I see that the file is shared with "user0"
- And I visit the settings page
+ And I visit the admin settings page
And I open the "Sharing" section of the "Administration" group
And I disable resharing
And I see that resharing is disabled
@@ -209,7 +209,7 @@ Feature: app-files-sharing-link
And I share the link for "farewell.txt"
And I write down the shared link
And I act as John
- And I visit the settings page
+ And I visit the admin settings page
And I open the "Sharing" section of the "Administration" group
And I disable resharing
And I see that resharing is disabled
@@ -239,7 +239,7 @@ Feature: app-files-sharing-link
And I share the link for "farewell.txt"
And I write down the shared link
And I act as John
- And I visit the settings page
+ And I visit the admin settings page
And I open the "Sharing" section of the "Administration" group
And I disable resharing
And I see that resharing is disabled
diff --git a/tests/acceptance/features/app-files-sharing.feature b/tests/acceptance/features/app-files-sharing.feature
index 4f58d1d17ff..cbb8aae33e7 100644
--- a/tests/acceptance/features/app-files-sharing.feature
+++ b/tests/acceptance/features/app-files-sharing.feature
@@ -252,7 +252,7 @@ Feature: app-files-sharing
And I see that the file list contains a file named "Shared folder"
And I share "Shared folder" with "user0"
And I see that the file is shared with "user0"
- When I visit the settings page
+ When I visit the admin settings page
And I open the "Sharing" section of the "Administration" group
And I disable resharing
And I see that resharing is disabled
@@ -273,7 +273,7 @@ Feature: app-files-sharing
And I see that the file list contains a file named "Shared folder"
And I share "Shared folder" with "user0"
And I see that the file is shared with "user0"
- And I visit the settings page
+ And I visit the admin settings page
And I open the "Sharing" section of the "Administration" group
And I disable resharing
And I see that resharing is disabled
@@ -303,7 +303,7 @@ Feature: app-files-sharing
And I open the Files app
And I share "Shared folder" with "user1"
And I act as John
- And I visit the settings page
+ And I visit the admin settings page
And I open the "Sharing" section of the "Administration" group
And I disable resharing
And I see that resharing is disabled
@@ -336,7 +336,7 @@ Feature: app-files-sharing
And I open the Files app
And I share "Shared folder" with "user1"
And I act as John
- And I visit the settings page
+ And I visit the admin settings page
And I open the "Sharing" section of the "Administration" group
And I disable resharing
And I see that resharing is disabled
diff --git a/tests/acceptance/features/app-files-tags.feature b/tests/acceptance/features/app-files-tags.feature
index 8514a59d7d0..efb1277007f 100644
--- a/tests/acceptance/features/app-files-tags.feature
+++ b/tests/acceptance/features/app-files-tags.feature
@@ -21,7 +21,7 @@ Feature: app-files-tags
Scenario: create tags using the Administration settings
Given I am logged in as the admin
- And I visit the settings page
+ And I visit the admin settings page
And I open the "Basic settings" section of the "Administration" group
# The "create" button does nothing before JavaScript was initialized, and
# the only way to detect that is waiting for the button to select tags to be
@@ -32,7 +32,7 @@ Feature: app-files-tags
# Scenario: add tags using the dropdown in the details view
# Given I am logged in as the admin
-# And I visit the settings page
+# And I visit the admin settings page
# And I open the "Basic settings" section of the "Administration" group
# # The "create" button does nothing before JavaScript was initialized, and
# # the only way to detect that is waiting for the button to select tags to be
@@ -60,7 +60,7 @@ Feature: app-files-tags
#
# Scenario: remove tags using the dropdown in the details view
# Given I am logged in as the admin
-# And I visit the settings page
+# And I visit the admin settings page
# And I open the "Basic settings" section of the "Administration" group
# # The "create" button does nothing before JavaScript was initialized, and
# # the only way to detect that is waiting for the button to select tags to be
diff --git a/tests/acceptance/features/app-theming.feature b/tests/acceptance/features/app-theming.feature
index 01c7d8df8dd..b6364ae4f44 100644
--- a/tests/acceptance/features/app-theming.feature
+++ b/tests/acceptance/features/app-theming.feature
@@ -3,7 +3,7 @@ Feature: app-theming
Scenario: changing the color updates the header color
Given I am logged in as the admin
- And I visit the settings page
+ And I visit the admin settings page
And I open the "Theming" section
And I see that the color selector in the Theming app has loaded
# The "eventually" part is not really needed here, as the colour is not
@@ -16,7 +16,7 @@ Feature: app-theming
Scenario: resetting the color updates the header color
Given I am logged in as the admin
- And I visit the settings page
+ And I visit the admin settings page
And I open the "Theming" section
And I see that the color selector in the Theming app has loaded
And I set the "Color" parameter in the Theming app to "#C9C9C9"
diff --git a/tests/acceptance/features/bootstrap/SettingsMenuContext.php b/tests/acceptance/features/bootstrap/SettingsMenuContext.php
index 1572dea3faa..0effe906240 100644
--- a/tests/acceptance/features/bootstrap/SettingsMenuContext.php
+++ b/tests/acceptance/features/bootstrap/SettingsMenuContext.php
@@ -144,6 +144,14 @@ class SettingsMenuContext implements Context, ActorAwareInterface {
}
/**
+ * @When I visit the admin settings page
+ */
+ public function iVisitTheAdminSettingsPage() {
+ $this->iOpenTheSettingsMenu();
+ $this->actor->find(self::menuItemFor('Admin settings'), 2)->click();
+ }
+
+ /**
* @When I log out
*/
public function iLogOut() {
diff --git a/tests/acceptance/features/header.feature b/tests/acceptance/features/header.feature
index 9931bc67436..2debb78638c 100644
--- a/tests/acceptance/features/header.feature
+++ b/tests/acceptance/features/header.feature
@@ -5,9 +5,10 @@ Feature: header
Given I am logged in as the admin
When I open the Settings menu
Then I see that the Settings menu is shown
- And I see that the Settings menu has only 7 items
+ And I see that the Settings menu has only 8 items
And I see that the "Set status" item in the Settings menu is shown
- And I see that the "Settings" item in the Settings menu is shown
+ And I see that the "Personal settings" item in the Settings menu is shown
+ And I see that the "Admin settings" item in the Settings menu is shown
And I see that the "Apps" item in the Settings menu is shown
And I see that the "Users" item in the Settings menu is shown
And I see that the "Help" item in the Settings menu is shown
@@ -32,7 +33,7 @@ Feature: header
Scenario: users from other groups are not seen in the contacts menu when autocompletion is restricted within the same group
Given I am logged in as the admin
- And I visit the settings page
+ And I visit the admin settings page
And I open the "Sharing" section of the "Administration" group
And I enable restricting username autocompletion to groups
And I see that username autocompletion is restricted to groups
diff --git a/tests/lib/NavigationManagerTest.php b/tests/lib/NavigationManagerTest.php
index 39f326ef0da..d29b6888c2c 100644
--- a/tests/lib/NavigationManagerTest.php
+++ b/tests/lib/NavigationManagerTest.php
@@ -282,6 +282,30 @@ class NavigationManagerTest extends TestCase {
'unread' => 0
]
];
+ $adminSettings = [
+ 'settings' => [
+ 'id' => 'settings',
+ 'order' => 2,
+ 'href' => '/apps/test/',
+ 'icon' => '/apps/settings/img/personal.svg',
+ 'name' => 'Personal settings',
+ 'active' => false,
+ 'type' => 'settings',
+ 'classes' => '',
+ 'unread' => 0
+ ],
+ 'admin_settings' => [
+ 'id' => 'admin_settings',
+ 'order' => 3,
+ 'href' => '/apps/test/',
+ 'icon' => '/apps/settings/img/admin.svg',
+ 'name' => 'Admin settings',
+ 'active' => false,
+ 'type' => 'settings',
+ 'classes' => '',
+ 'unread' => 0
+ ]
+ ];
return [
'minimalistic' => [
@@ -330,7 +354,7 @@ class NavigationManagerTest extends TestCase {
],
'admin' => [
array_merge(
- ['settings' => $defaults['settings']],
+ $adminSettings,
$apps,
['test' => [
'id' => 'test',
@@ -354,7 +378,7 @@ class NavigationManagerTest extends TestCase {
],
'no name' => [
array_merge(
- ['settings' => $defaults['settings']],
+ $adminSettings,
$apps,
['logout' => $defaults['logout']]
),