Merge pull request #33756 from nextcloud/enh/noid/admin-settings-directly

add a way to open the admin settings overview directly
This commit is contained in:
Simon L 2022-08-31 17:56:11 +02:00 committed by GitHub
commit b0f6ca0e0d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 87 additions and 29 deletions

View File

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

View File

@ -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 !== '') {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -143,6 +143,14 @@ class SettingsMenuContext implements Context, ActorAwareInterface {
$this->actor->find(self::menuItemFor('Settings'), 2)->click();
}
/**
* @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
*/

View File

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

View File

@ -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']]
),