diff options
author | Sandeepa Singh <sandeepa.singh@ibm.com> | 2021-07-26 12:35:39 +0300 |
---|---|---|
committer | Derick Montague <derick.montague@ibm.com> | 2021-08-10 22:20:42 +0300 |
commit | b440616c23b61166ae6d87839a70eec31bdca235 (patch) | |
tree | d72769d4aa425e96e47419515b85a8631d8e99d7 | |
parent | f67f769f2304bca64d2b9758e22c21203960eef9 (diff) | |
download | webui-vue-b440616c23b61166ae6d87839a70eec31bdca235.tar.xz |
IA update: Update access and control section
This is the fifth commit of the information architecture changes and
has the following changes:
- The icon for access and control has been updated
- Access and control section has been updated to security and
access section
- Security settings page has been updated to policies page and moved to
security and access section
- Client sessions page has been updated to sessions page
- Local user management page has been updated to user management page
- SSL certificates page has been updated to certificates page
Signed-off-by: Sandeepa Singh <sandeepa.singh@ibm.com>
Change-Id: Ie93cee9002742ecf7d33615636f4f159f4395fc4
-rw-r--r-- | src/components/AppNavigation/AppNavigationMixin.js | 40 | ||||
-rw-r--r-- | src/env/components/AppNavigation/ibm.js | 40 | ||||
-rw-r--r-- | src/env/components/AppNavigation/intel.js | 38 | ||||
-rw-r--r-- | src/env/router/ibm.js | 52 | ||||
-rw-r--r-- | src/env/router/intel.js | 48 | ||||
-rw-r--r-- | src/locales/en-US.json | 40 | ||||
-rw-r--r-- | src/locales/ru-RU.json | 34 | ||||
-rw-r--r-- | src/router/routes.js | 50 | ||||
-rw-r--r-- | src/store/index.js | 18 | ||||
-rw-r--r-- | src/store/modules/SecurityAndAccess/CertificatesStore.js (renamed from src/store/modules/AccessControl/SslCertificatesStore.js) | 24 | ||||
-rw-r--r-- | src/store/modules/SecurityAndAccess/LdapStore.js (renamed from src/store/modules/AccessControl/LdapStore.js) | 0 | ||||
-rw-r--r-- | src/store/modules/SecurityAndAccess/PoliciesStore.js (renamed from src/store/modules/Settings/SecuritySettingsStore.js) | 28 | ||||
-rw-r--r-- | src/store/modules/SecurityAndAccess/SessionsStore.js (renamed from src/store/modules/AccessControl/ClientSessionsStore.js) | 12 | ||||
-rw-r--r-- | src/store/modules/SecurityAndAccess/UserManagementStore.js (renamed from src/store/modules/AccessControl/LocalUserMangementStore.js) | 55 | ||||
-rw-r--r-- | src/views/AccessControl/ClientSessions/index.js | 2 | ||||
-rw-r--r-- | src/views/AccessControl/LocalUserManagement/index.js | 2 | ||||
-rw-r--r-- | src/views/AccessControl/SslCertificates/index.js | 2 | ||||
-rw-r--r-- | src/views/ChangePassword/ChangePassword.vue | 2 | ||||
-rw-r--r-- | src/views/ProfileSettings/ProfileSettings.vue | 8 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Certificates/Certificates.vue (renamed from src/views/AccessControl/SslCertificates/SslCertificates.vue) | 46 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Certificates/CsrCountryCodes.js (renamed from src/views/AccessControl/SslCertificates/CsrCountryCodes.js) | 0 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue (renamed from src/views/AccessControl/SslCertificates/ModalGenerateCsr.vue) | 48 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue (renamed from src/views/AccessControl/SslCertificates/ModalUploadCertificate.vue) | 12 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Certificates/index.js | 2 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Ldap/Ldap.vue (renamed from src/views/AccessControl/Ldap/Ldap.vue) | 6 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue (renamed from src/views/AccessControl/Ldap/ModalAddRoleGroup.vue) | 2 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Ldap/TableRoleGroups.vue (renamed from src/views/AccessControl/Ldap/TableRoleGroups.vue) | 2 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Ldap/index.js (renamed from src/views/AccessControl/Ldap/index.js) | 0 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Policies/Policies.vue (renamed from src/views/Settings/SecuritySettings/SecuritySettings.vue) | 32 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Policies/index.js | 2 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Sessions/Sessions.vue (renamed from src/views/AccessControl/ClientSessions/ClientSessions.vue) | 65 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/Sessions/index.js | 2 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/UserManagement/ModalSettings.vue (renamed from src/views/AccessControl/LocalUserManagement/ModalSettings.vue) | 28 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/UserManagement/ModalUser.vue (renamed from src/views/AccessControl/LocalUserManagement/ModalUser.vue) | 71 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/UserManagement/TableRoles.vue (renamed from src/views/AccessControl/LocalUserManagement/TableRoles.vue) | 10 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/UserManagement/UserManagement.vue (renamed from src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue) | 70 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/UserManagement/index.js | 2 | ||||
-rw-r--r-- | src/views/Settings/SecuritySettings/index.js | 2 | ||||
-rw-r--r-- | tests/unit/__snapshots__/AppNavigation.spec.js.snap | 108 |
39 files changed, 486 insertions, 519 deletions
diff --git a/src/components/AppNavigation/AppNavigationMixin.js b/src/components/AppNavigation/AppNavigationMixin.js index b89f361c..da8a59cd 100644 --- a/src/components/AppNavigation/AppNavigationMixin.js +++ b/src/components/AppNavigation/AppNavigationMixin.js @@ -3,7 +3,7 @@ import IconTextLinkAnalysis from '@carbon/icons-vue/es/text-link--analysis/16'; import IconDataCheck from '@carbon/icons-vue/es/data--check/16'; import IconSettingsAdjust from '@carbon/icons-vue/es/settings--adjust/16'; import IconSettings from '@carbon/icons-vue/es/settings/16'; -import IconPassword from '@carbon/icons-vue/es/password/16'; +import IconSecurity from '@carbon/icons-vue/es/security/16'; import IconChevronUp from '@carbon/icons-vue/es/chevron--up/16'; const AppNavigationMixin = { @@ -13,7 +13,7 @@ const AppNavigationMixin = { iconHealth: IconDataCheck, iconControl: IconSettingsAdjust, iconSettings: IconSettings, - iconAccessControl: IconPassword, + iconSecurityAndAccess: IconSecurity, iconExpand: IconChevronUp, }, data() { @@ -126,37 +126,37 @@ const AppNavigationMixin = { label: this.$t('appNavigation.powerRestorePolicy'), route: '/settings/power-restore-policy', }, - { - id: 'security-settings', - label: this.$t('appNavigation.securitySettings'), - route: '/settings/security-settings', - }, ], }, { - id: 'access-control', - label: this.$t('appNavigation.accessControl'), - icon: 'iconAccessControl', + id: 'security-and-access', + label: this.$t('appNavigation.securityAndAccess'), + icon: 'iconSecurityAndAccess', children: [ { - id: 'client-sessions', - label: this.$t('appNavigation.clientSessions'), - route: '/access-control/client-sessions', + id: 'sessions', + label: this.$t('appNavigation.sessions'), + route: '/security-and-access/sessions', }, { id: 'ldap', label: this.$t('appNavigation.ldap'), - route: '/access-control/ldap', + route: '/security-and-access/ldap', + }, + { + id: 'user-management', + label: this.$t('appNavigation.userManagement'), + route: '/security-and-access/user-management', }, { - id: 'local-user-management', - label: this.$t('appNavigation.localUserManagement'), - route: '/access-control/local-user-management', + id: 'policies', + label: this.$t('appNavigation.policies'), + route: '/security-and-access/policies', }, { - id: 'ssl-certificates', - label: this.$t('appNavigation.sslCertificates'), - route: '/access-control/ssl-certificates', + id: 'certificates', + label: this.$t('appNavigation.certificates'), + route: '/security-and-access/certificates', }, ], }, diff --git a/src/env/components/AppNavigation/ibm.js b/src/env/components/AppNavigation/ibm.js index d6a62893..cbf0db55 100644 --- a/src/env/components/AppNavigation/ibm.js +++ b/src/env/components/AppNavigation/ibm.js @@ -3,7 +3,7 @@ import IconTextLinkAnalysis from '@carbon/icons-vue/es/text-link--analysis/16'; import IconDataCheck from '@carbon/icons-vue/es/data--check/16'; import IconSettingsAdjust from '@carbon/icons-vue/es/settings--adjust/16'; import IconSettings from '@carbon/icons-vue/es/settings/16'; -import IconPassword from '@carbon/icons-vue/es/password/16'; +import IconSecurity from '@carbon/icons-vue/es/security/16'; import IconChevronUp from '@carbon/icons-vue/es/chevron--up/16'; const AppNavigationMixin = { @@ -13,7 +13,7 @@ const AppNavigationMixin = { iconHealth: IconDataCheck, iconControl: IconSettingsAdjust, iconSettings: IconSettings, - iconAccessControl: IconPassword, + iconSecurityAndAccess: IconSecurity, iconExpand: IconChevronUp, }, data() { @@ -121,37 +121,37 @@ const AppNavigationMixin = { label: this.$t('appNavigation.powerRestorePolicy'), route: '/settings/power-restore-policy', }, - { - id: 'security-settings', - label: this.$t('appNavigation.securitySettings'), - route: '/settings/security-settings', - }, ], }, { - id: 'access-control', - label: this.$t('appNavigation.accessControl'), - icon: 'iconAccessControl', + id: 'security-and-access', + label: this.$t('appNavigation.securityAndAccess'), + icon: 'iconSecurityAndAccess', children: [ { - id: 'client-sessions', - label: this.$t('appNavigation.clientSessions'), - route: '/access-control/client-sessions', + id: 'sessions', + label: this.$t('appNavigation.sessions'), + route: '/security-and-access/sessions', }, { id: 'ldap', label: this.$t('appNavigation.ldap'), - route: '/access-control/ldap', + route: '/security-and-access/ldap', + }, + { + id: 'user-management', + label: this.$t('appNavigation.userManagement'), + route: '/security-and-access/user-management', }, { - id: 'local-user-management', - label: this.$t('appNavigation.localUserManagement'), - route: '/access-control/local-user-management', + id: 'policies', + label: this.$t('appNavigation.policies'), + route: '/security-and-access/policies', }, { - id: 'ssl-certificates', - label: this.$t('appNavigation.sslCertificates'), - route: '/access-control/ssl-certificates', + id: 'certificates', + label: this.$t('appNavigation.certificates'), + route: '/security-and-access/certificates', }, ], }, diff --git a/src/env/components/AppNavigation/intel.js b/src/env/components/AppNavigation/intel.js index 20aa4f23..a67828d9 100644 --- a/src/env/components/AppNavigation/intel.js +++ b/src/env/components/AppNavigation/intel.js @@ -3,7 +3,7 @@ import IconTextLinkAnalysis from '@carbon/icons-vue/es/text-link--analysis/16'; import IconDataCheck from '@carbon/icons-vue/es/data--check/16'; import IconSettingsAdjust from '@carbon/icons-vue/es/settings--adjust/16'; import IconSettings from '@carbon/icons-vue/es/settings/16'; -import IconPassword from '@carbon/icons-vue/es/password/16'; +import IconSecurity from '@carbon/icons-vue/es/security/16'; import IconChevronUp from '@carbon/icons-vue/es/chevron--up/16'; const AppNavigationMixin = { @@ -13,7 +13,7 @@ const AppNavigationMixin = { iconHealth: IconDataCheck, iconControl: IconSettingsAdjust, iconSettings: IconSettings, - iconAccessControl: IconPassword, + iconSecurityAndAccess: IconSecurity, iconExpand: IconChevronUp, }, data() { @@ -111,32 +111,32 @@ const AppNavigationMixin = { label: this.$t('appNavigation.network'), route: '/settings/network', }, - { - id: 'security-settings', - label: this.$t('appNavigation.securitySettings'), - route: '/settings/security-settings', - }, ], }, { - id: 'access-control', - label: this.$t('appNavigation.accessControl'), - icon: 'iconAccessControl', + id: 'security-and-access', + label: this.$t('appNavigation.securityAndAccess'), + icon: 'iconSecurityAndAccess', children: [ { - id: 'client-sessions', - label: this.$t('appNavigation.clientSessions'), - route: '/access-control/client-sessions', + id: 'sessions', + label: this.$t('appNavigation.sessions'), + route: '/security-and-access/sessions', + }, + { + id: 'user-management', + label: this.$t('appNavigation.userManagement'), + route: '/security-and-access/user-management', }, { - id: 'local-user-management', - label: this.$t('appNavigation.localUserManagement'), - route: '/access-control/local-user-management', + id: 'policies', + label: this.$t('appNavigation.policies'), + route: '/security-and-access/policies', }, { - id: 'ssl-certificates', - label: this.$t('appNavigation.sslCertificates'), - route: '/access-control/ssl-certificates', + id: 'certificates', + label: this.$t('appNavigation.certificates'), + route: '/security-and-access/certificates', }, ], }, diff --git a/src/env/router/ibm.js b/src/env/router/ibm.js index 4149b97a..f32635fc 100644 --- a/src/env/router/ibm.js +++ b/src/env/router/ibm.js @@ -1,14 +1,14 @@ import AppLayout from '@/layouts/AppLayout.vue'; import ChangePassword from '@/views/ChangePassword'; -import ClientSessions from '@/views/AccessControl/ClientSessions'; +import Sessions from '@/views/SecurityAndAccess/Sessions'; import ConsoleLayout from '@/layouts/ConsoleLayout.vue'; import DateTime from '@/views/Settings/DateTime'; import EventLogs from '@/views/Logs/EventLogs'; import FactoryReset from '@/views/Operations/FactoryReset'; import Firmware from '@/views/Operations/Firmware'; import Inventory from '@/views/HardwareStatus/Inventory'; -import Ldap from '@/views/AccessControl/Ldap'; -import LocalUserManagement from '@/views/AccessControl/LocalUserManagement'; +import Ldap from '@/views/SecurityAndAccess/Ldap'; +import UserManagement from '@/views/SecurityAndAccess/UserManagement'; import Login from '@/views/Login'; import LoginLayout from '@/layouts/LoginLayout'; import ManagePowerUsage from '@/views/Operations/ManagePowerUsage'; @@ -19,12 +19,12 @@ import PostCodeLogs from '@/views/Logs/PostCodeLogs'; import PowerRestorePolicy from '@/views/Settings/PowerRestorePolicy'; import ProfileSettings from '@/views/ProfileSettings'; import RebootBmc from '@/views/Operations/RebootBmc'; -import SecuritySettings from '@/views/Settings/SecuritySettings'; +import Policies from '@/views/SecurityAndAccess/Policies'; import Sensors from '@/views/HardwareStatus/Sensors'; import SerialOverLan from '@/views/Operations/SerialOverLan'; import SerialOverLanConsole from '@/views/Operations/SerialOverLan/SerialOverLanConsole'; import ServerPowerOperations from '@/views/Operations/ServerPowerOperations'; -import SslCertificates from '@/views/AccessControl/SslCertificates'; +import Certificates from '@/views/SecurityAndAccess/Certificates'; import i18n from '@/i18n'; // Custom components @@ -135,15 +135,15 @@ const routes = [ }, }, { - path: '/access-control/client-sessions', - name: 'client-sessions', - component: ClientSessions, + path: '/security-and-access/sessions', + name: 'sessions', + component: Sessions, meta: { - title: i18n.t('appPageTitle.clientSessions'), + title: i18n.t('appPageTitle.sessions'), }, }, { - path: '/access-control/ldap', + path: '/security-and-access/ldap', name: 'ldap', component: Ldap, meta: { @@ -151,19 +151,27 @@ const routes = [ }, }, { - path: '/access-control/local-user-management', - name: 'local-users', - component: LocalUserManagement, + path: '/security-and-access/user-management', + name: 'user-management', + component: UserManagement, meta: { - title: i18n.t('appPageTitle.localUserManagement'), + title: i18n.t('appPageTitle.userManagement'), }, }, { - path: '/access-control/ssl-certificates', - name: 'ssl-certificates', - component: SslCertificates, + path: '/security-and-access/policies', + name: 'policies', + component: Policies, meta: { - title: i18n.t('appPageTitle.sslCertificates'), + title: i18n.t('appPageTitle.policies'), + }, + }, + { + path: '/security-and-access/certificates', + name: 'certificates', + component: Certificates, + meta: { + title: i18n.t('appPageTitle.certificates'), }, }, { @@ -207,14 +215,6 @@ const routes = [ }, }, { - path: '/settings/security-settings', - name: 'security-settings', - component: SecuritySettings, - meta: { - title: i18n.t('appPageTitle.securitySettings'), - }, - }, - { path: '/operations/factory-reset', name: 'factory-reset', component: FactoryReset, diff --git a/src/env/router/intel.js b/src/env/router/intel.js index a8c5a2af..dec42afc 100644 --- a/src/env/router/intel.js +++ b/src/env/router/intel.js @@ -1,6 +1,6 @@ import AppLayout from '@/layouts/AppLayout.vue'; import ChangePassword from '@/views/ChangePassword'; -import ClientSessions from '@/views/AccessControl/ClientSessions'; +import Sessions from '@/views/SecurityAndAccess/Sessions'; import ConsoleLayout from '@/layouts/ConsoleLayout.vue'; import DateTime from '@/views/Settings/DateTime'; import EventLogs from '@/views/Logs/EventLogs'; @@ -8,7 +8,7 @@ import Firmware from '@/views/Operations/Firmware'; import Inventory from '@/views/HardwareStatus/Inventory'; import Kvm from '@/views/Operations/Kvm'; import KvmConsole from '@/views/Operations/Kvm/KvmConsole'; -import LocalUserManagement from '@/views/AccessControl/LocalUserManagement'; +import UserManagement from '@/views/SecurityAndAccess/UserManagement'; import Login from '@/views/Login'; import LoginLayout from '@/layouts/LoginLayout'; import ManagePowerUsage from '@/views/Operations/ManagePowerUsage'; @@ -17,12 +17,12 @@ import Overview from '@/views/Overview'; import PageNotFound from '@/views/PageNotFound'; import ProfileSettings from '@/views/ProfileSettings'; import RebootBmc from '@/views/Operations/RebootBmc'; -import SecuritySettings from '@/views/Settings/SecuritySettings'; +import Policies from '@/views/SecurityAndAccess/Policies'; import Sensors from '@/views/HardwareStatus/Sensors'; import SerialOverLan from '@/views/Operations/SerialOverLan'; import SerialOverLanConsole from '@/views/Operations/SerialOverLan/SerialOverLanConsole'; import ServerPowerOperations from '@/views/Operations/ServerPowerOperations'; -import SslCertificates from '@/views/AccessControl/SslCertificates'; +import Certificates from '@/views/SecurityAndAccess/Certificates'; import VirtualMedia from '@/views/Operations/VirtualMedia'; import i18n from '@/i18n'; @@ -123,27 +123,35 @@ const routes = [ }, }, { - path: '/access-control/client-sessions', - name: 'client-sessions', - component: ClientSessions, + path: '/security-and-access/sessions', + name: 'sessions', + component: Sessions, meta: { - title: i18n.t('appPageTitle.clientSessions'), + title: i18n.t('appPageTitle.sessions'), }, }, { - path: '/access-control/local-user-management', - name: 'local-users', - component: LocalUserManagement, + path: '/security-and-access/user-management', + name: 'user-management', + component: UserManagement, meta: { - title: i18n.t('appPageTitle.localUserManagement'), + title: i18n.t('appPageTitle.userManagement'), }, }, { - path: '/access-control/ssl-certificates', - name: 'ssl-certificates', - component: SslCertificates, + path: '/security-and-access/policies', + name: 'policies', + component: Policies, meta: { - title: i18n.t('appPageTitle.sslCertificates'), + title: i18n.t('appPageTitle.policies'), + }, + }, + { + path: '/security-and-access/certificates', + name: 'certificates', + component: Certificates, + meta: { + title: i18n.t('appPageTitle.certificates'), }, }, { @@ -187,14 +195,6 @@ const routes = [ }, }, { - path: '/settings/security-settings', - name: 'security-settings', - component: SecuritySettings, - meta: { - title: i18n.t('appPageTitle.securitySettings'), - }, - }, - { path: '/operations/reboot-bmc', name: 'reboot-bmc', component: RebootBmc, diff --git a/src/locales/en-US.json b/src/locales/en-US.json index ed23acac..33e65f58 100644 --- a/src/locales/en-US.json +++ b/src/locales/en-US.json @@ -98,8 +98,8 @@ "titleRefresh": "Refresh application data" }, "appNavigation": { - "accessControl": "Access control", - "clientSessions": "@:appPageTitle.clientSessions", + "securityAndAccess": "Security and access", + "sessions": "@:appPageTitle.sessions", "settings": "Settings", "operations": "Operations", "dateTime": "@:appPageTitle.dateTime", @@ -112,7 +112,7 @@ "kvm": "@:appPageTitle.kvm", "ldap": "@:appPageTitle.ldap", "logs": "Logs", - "localUserManagement": "@:appPageTitle.localUserManagement", + "userManagement": "@:appPageTitle.userManagement", "managePowerUsage": "@:appPageTitle.managePowerUsage", "network": "@:appPageTitle.network", "overview": "@:appPageTitle.overview", @@ -120,16 +120,16 @@ "postCodeLogs": "@:appPageTitle.postCodeLogs", "powerRestorePolicy": "@:appPageTitle.powerRestorePolicy", "rebootBmc": "@:appPageTitle.rebootBmc", - "securitySettings": "@:appPageTitle.securitySettings", + "policies": "@:appPageTitle.policies", "sensors": "@:appPageTitle.sensors", "serialOverLan": "SOL console", "serverPowerOperations": "@:appPageTitle.serverPowerOperations", - "sslCertificates": "@:appPageTitle.sslCertificates", + "certificates": "@:appPageTitle.certificates", "virtualMedia": "@:appPageTitle.virtualMedia" }, "appPageTitle": { "changePassword": "Change password", - "clientSessions": "Client sessions", + "sessions": "Sessions", "dateTime": "Date and time", "dumps": "Dumps", "eventLogs": "Event logs", @@ -138,7 +138,7 @@ "inventory": "Inventory and LEDs", "kvm": "KVM", "ldap": "LDAP", - "localUserManagement": "Local user management", + "userManagement": "User management", "login": "Login", "managePowerUsage": "Manage power usage", "network": "Network", @@ -148,11 +148,11 @@ "powerRestorePolicy": "Power restore policy", "profileSettings": "Profile settings", "rebootBmc": "Reboot BMC", - "securitySettings": "Security settings", + "policies": "Policies", "sensors": "Sensors", "serialOverLan": "Serial over LAN (SOL) console", "serverPowerOperations": "Server power operations", - "sslCertificates": "SSL certificates", + "certificates": "Certificates", "virtualMedia": "Virtual media" }, "pageChangePassword": { @@ -164,7 +164,7 @@ "newPassword": "New password", "username": "Username" }, - "pageClientSessions": { + "pageSessions": { "action": { "disconnect": "Disconnect" }, @@ -486,7 +486,7 @@ "successSaveRoleGroup": "Successfully saved role group '%{groupName}'." } }, - "pageLocalUserManagement": { + "pageUserManagement": { "accountPolicySettings": "Account policy settings", "addUser": "Add user", "deleteUser": "Delete user | Delete users", @@ -585,7 +585,7 @@ "solConsole": "@:appNavigation.serialOverLan" } }, - "pagePostCodeLogs":{ + "pagePostCodeLogs": { "allExportFilePrefix": "All_POST_codes_log_", "downloadFilePrefix": "POST_codes_additional_details_", "exportFilePrefix": "POST_codes_log_", @@ -594,7 +594,7 @@ "exportLogs": "Export log" }, "button": { - "exportAll": "Export all" + "exportAll": "Export all" }, "table": { "created": "Created", @@ -694,12 +694,22 @@ "successRebootStart": "Rebooting BMC." } }, - "pageSecuritySettings": { + "pagePolicies": { "ipmi": "Network IPMI (out-of-band IPMI)", "ipmiDescription": "Allow remote management of the platform via IPMI. Tools such as ipmitool require this setting to be enabled.", "networkServices": "Network services", "ssh": "BMC shell (via SSH)", "sshDescription": "Allow access to shell sessions via SSH, through port 22 on the BMC.", + "modal": { + "disableMessage": { + "ipmi": "Are you sure you want to disable @:pagePolicies.ipmi?", + "ssh": "Are you sure you want to disable @:pagePolicies.ssh?" + }, + "enableMessage": { + "ipmi": "Are you sure you want to enable @:pagePolicies.ipmi?", + "ssh": "Are you sure you want to enable @:pagePolicies.ssh?" + } + }, "toast": { "errorIpmiDisabled": "Error disabling IPMI security setting.", "errorIpmiEnabled": "Error enabling IPMI security setting.", @@ -765,7 +775,7 @@ "successSaveSettings": "Successfully saved settings." } }, - "pageSslCertificates": { + "pageCertificates": { "addNewCertificate": "Add new certificate", "caCertificate": "CA Certificate", "deleteCertificate": "Delete certificate", diff --git a/src/locales/ru-RU.json b/src/locales/ru-RU.json index 8042b163..c39a1737 100644 --- a/src/locales/ru-RU.json +++ b/src/locales/ru-RU.json @@ -96,8 +96,8 @@ "titleRefresh": "Обновить данные веб-приложения" }, "appNavigation": { - "accessControl": "Контроль доступа", - "clientSessions": "@:appPageTitle.clientSessions", + "securityAndAccess": "доступа", + "sessions": "@:appPageTitle.sessions", "configuration": "Конфигурация", "control": "Управление", "dateTimeSettings": "@:appPageTitle.dateTimeSettings", @@ -109,25 +109,25 @@ "health": "Состояние", "kvm": "@:appPageTitle.kvm", "ldap": "@:appPageTitle.ldap", - "localUserManagement": "@:appPageTitle.localUserManagement", + "userManagement": "@:appPageTitle.userManagement", "managePowerUsage": "@:appPageTitle.managePowerUsage", "networkSettings": "@:appPageTitle.networkSettings", "overview": "@:appPageTitle.overview", "primaryNavigation": "Основная навигация", "powerRestorePolicy": "@:appPageTitle.powerRestorePolicy", "rebootBmc": "@:appPageTitle.rebootBmc", - "securitySettings": "@:appPageTitle.securitySettings", + "policies": "@:appPageTitle.policies", "sensors": "@:appPageTitle.sensors", "serialOverLan": "Консоль SOL", "serverLed": "@:appPageTitle.serverLed", "serverPowerOperations": "@:appPageTitle.serverPowerOperations", "snmpSettings": "@:appPageTitle.snmpSettings", - "sslCertificates": "@:appPageTitle.sslCertificates", + "certificates": "@:appPageTitle.certificates", "virtualMedia": "@:appPageTitle.virtualMedia" }, "appPageTitle": { "changePassword": "Изменить пароль", - "clientSessions": "Сессии клиентов", + "sessions": "Сессии клиентов", "dateTimeSettings": "Настройка даты и времени", "dumps": "Дампы", "eventLogs": "Журнал событий", @@ -136,7 +136,7 @@ "hardwareStatus": "Статус оборудования", "kvm": "KVM", "ldap": "LDAP", - "localUserManagement": "Управление локальными пользователями", + "userManagement": "Управление локальными пользователями", "login": "Логин", "managePowerUsage": "Управление энергопотреблением", "networkSettings": "Настройки сети", @@ -145,13 +145,13 @@ "powerRestorePolicy": "Действие при восстановлении питания", "profileSettings": "Настройки профиля", "rebootBmc": "Перезапуск BMC", - "securitySettings": "Настройки безопасности", + "policies": "Настройки безопасности", "sensors": "Датчики", "serialOverLan": "Консоль Serial over LAN (SOL)", "serverLed": "Индикатор сервера", "serverPowerOperations": "Управление питанием сервера", "snmpSettings": "Настройки SNMP", - "sslCertificates": "SSL сертификаты", + "certificates": "сертификаты", "virtualMedia": "Виртуальные носители" }, "pageChangePassword": { @@ -163,7 +163,7 @@ "newPassword": "Новый пароль", "username": "Имя пользователя" }, - "pageClientSessions": { + "pageSessions": { "action": { "disconnect": "Отключить" }, @@ -453,7 +453,7 @@ "successSaveRoleGroup": "Успешное сохранение группы '%{groupName}'." } }, - "pageLocalUserManagement": { + "pageUserManagement": { "accountPolicySettings": "Настройки политики учётной записи", "addUser": "Добавить пользователя", "deleteUser": "Удалить пользователя | Удалить пользователей", @@ -644,7 +644,7 @@ "successRebootStart": "Перезапуск BMC." } }, - "pageSecuritySettings": { + "pagePolicies": { "ipmi": "Сетевой IPMI (out-of-band IPMI)", "ipmiDescription": "Разрешить удаленное управление платформой через IPMI. Такие иструменты, как ipmitool требуют включения этой функции.", "networkServices": "Сетевые службы", @@ -652,12 +652,12 @@ "sshDescription": "Разрешить доступ к консольной сессии через SSH, через порт 22 на BMC.", "modal": { "disableMessage": { - "ipmi": "Вы уверены, что хотите отключить @:pageSecuritySettings.ipmi?", - "ssh": "Вы уверены, что хотите отключить @:pageSecuritySettings.ssh?" + "ipmi": "Вы уверены, что хотите отключить @:pagePolicies.ipmi?", + "ssh": "Вы уверены, что хотите отключить @:pagePolicies.ssh?" }, "enableMessage": { - "ipmi": "Вы уверены, что хотите включить @:pageSecuritySettings.ipmi?", - "ssh": "Вы уверены, что хотите включить @:pageSecuritySettings.ssh?" + "ipmi": "Вы уверены, что хотите включить @:pagePolicies.ipmi?", + "ssh": "Вы уверены, что хотите включить @:pagePolicies.ssh?" } }, "toast": { @@ -735,7 +735,7 @@ "successSaveSettings": "Успешное сохранение настроек." } }, - "pageSslCertificates": { + "pageCertificates": { "addNewCertificate": "Добавить новый сертификат", "caCertificate": "Сертификат CA", "deleteCertificate": "Удалить сертификат", diff --git a/src/router/routes.js b/src/router/routes.js index a5cb7f2f..da103755 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -8,9 +8,9 @@ import Firmware from '@/views/Operations/Firmware'; import Inventory from '@/views/HardwareStatus/Inventory'; import Kvm from '@/views/Operations/Kvm'; import KvmConsole from '@/views/Operations/Kvm/KvmConsole'; -import ClientSessions from '../views/AccessControl/ClientSessions'; -import Ldap from '@/views/AccessControl/Ldap'; -import LocalUserManagement from '@/views/AccessControl/LocalUserManagement'; +import Sessions from '../views/SecurityAndAccess/Sessions'; +import Ldap from '@/views/SecurityAndAccess/Ldap'; +import UserManagement from '@/views/SecurityAndAccess/UserManagement'; import Login from '@/views/Login'; import LoginLayout from '@/layouts/LoginLayout'; import ManagePowerUsage from '@/views/Operations/ManagePowerUsage'; @@ -21,12 +21,12 @@ import PostCodeLogs from '@/views/Logs/PostCodeLogs'; import PowerRestorePolicy from '@/views/Settings/PowerRestorePolicy'; import ProfileSettings from '@/views/ProfileSettings'; import RebootBmc from '@/views/Operations/RebootBmc'; -import SecuritySettings from '@/views/Settings/SecuritySettings'; +import Policies from '@/views/SecurityAndAccess/Policies'; import Sensors from '@/views/HardwareStatus/Sensors'; import SerialOverLan from '@/views/Operations/SerialOverLan'; import SerialOverLanConsole from '@/views/Operations/SerialOverLan/SerialOverLanConsole'; import ServerPowerOperations from '@/views/Operations/ServerPowerOperations'; -import SslCertificates from '@/views/AccessControl/SslCertificates'; +import Certificates from '@/views/SecurityAndAccess/Certificates'; import VirtualMedia from '@/views/Operations/VirtualMedia'; import i18n from '@/i18n'; @@ -135,15 +135,15 @@ const routes = [ }, }, { - path: '/access-control/client-sessions', - name: 'client-sessions', - component: ClientSessions, + path: '/security-and-access/sessions', + name: 'sessions', + component: Sessions, meta: { - title: i18n.t('appPageTitle.clientSessions'), + title: i18n.t('appPageTitle.sessions'), }, }, { - path: '/access-control/ldap', + path: '/security-and-access/ldap', name: 'ldap', component: Ldap, meta: { @@ -151,35 +151,35 @@ const routes = [ }, }, { - path: '/access-control/local-user-management', + path: '/security-and-access/user-management', name: 'local-users', - component: LocalUserManagement, + component: UserManagement, meta: { - title: i18n.t('appPageTitle.localUserManagement'), + title: i18n.t('appPageTitle.userManagement'), }, }, { - path: '/access-control/ssl-certificates', - name: 'ssl-certificates', - component: SslCertificates, + path: '/security-and-access/policies', + name: 'policies', + component: Policies, meta: { - title: i18n.t('appPageTitle.sslCertificates'), + title: i18n.t('appPageTitle.policies'), }, }, { - path: '/settings/date-time', - name: 'date-time', - component: DateTime, + path: '/security-and-access/certificates', + name: 'certificates', + component: Certificates, meta: { - title: i18n.t('appPageTitle.dateTime'), + title: i18n.t('appPageTitle.certificates'), }, }, { - path: '/configuration/security-settings', - name: 'security-settings', - component: SecuritySettings, + path: '/settings/date-time', + name: 'date-time', + component: DateTime, meta: { - title: i18n.t('appPageTitle.securitySettings'), + title: i18n.t('appPageTitle.dateTime'), }, }, { diff --git a/src/store/index.js b/src/store/index.js index 2afadd02..608a0270 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -3,10 +3,10 @@ import Vuex from 'vuex'; import GlobalStore from './modules/GlobalStore'; import AuthenticationStore from './modules/Authentication/AuthenticanStore'; -import ClientSessions from './modules/AccessControl/ClientSessionsStore'; -import LdapStore from './modules/AccessControl/LdapStore'; -import LocalUserManagementStore from './modules/AccessControl/LocalUserMangementStore'; -import SslCertificatesStore from './modules/AccessControl/SslCertificatesStore'; +import SessionsStore from './modules/SecurityAndAccess/SessionsStore'; +import LdapStore from './modules/SecurityAndAccess/LdapStore'; +import UserManagementStore from './modules/SecurityAndAccess/UserManagementStore'; +import CertificatesStore from './modules/SecurityAndAccess/CertificatesStore'; import FirmwareStore from './modules/Operations/FirmwareStore'; import BootSettingsStore from './modules/Operations/BootSettingsStore'; import ControlStore from './modules/Operations/ControlStore'; @@ -24,7 +24,7 @@ import ChassisStore from './modules/HardwareStatus/ChassisStore'; import BmcStore from './modules/HardwareStatus/BmcStore'; import ProcessorStore from './modules/HardwareStatus/ProcessorStore'; import PostCodeLogsStore from './modules/Logs/PostCodeLogsStore'; -import SecuritySettingsStore from './modules/Settings/SecuritySettingsStore'; +import PoliciesStore from './modules/SecurityAndAccess/PoliciesStore'; import FactoryResetStore from './modules/Operations/FactoryResetStore'; import WebSocketPlugin from './plugins/WebSocketPlugin'; @@ -40,10 +40,10 @@ export default new Vuex.Store({ modules: { global: GlobalStore, authentication: AuthenticationStore, - clientSessions: ClientSessions, + sessions: SessionsStore, dateTime: DateTimeStore, ldap: LdapStore, - localUsers: LocalUserManagementStore, + userManagement: UserManagementStore, firmware: FirmwareStore, serverBootSettings: BootSettingsStore, controls: ControlStore, @@ -53,8 +53,8 @@ export default new Vuex.Store({ network: NetworkStore, eventLog: EventLogStore, sensors: SensorsStore, - sslCertificates: SslCertificatesStore, serverLed: ServerLedStore, + certificates: CertificatesStore, system: SystemStore, memory: MemoryStore, fan: FanStore, @@ -63,7 +63,7 @@ export default new Vuex.Store({ processors: ProcessorStore, postCodeLogs: PostCodeLogsStore, virtualMedia: VirtualMediaStore, - securitySettings: SecuritySettingsStore, + policies: PoliciesStore, factoryReset: FactoryResetStore, }, plugins: [WebSocketPlugin], diff --git a/src/store/modules/AccessControl/SslCertificatesStore.js b/src/store/modules/SecurityAndAccess/CertificatesStore.js index 752c2124..97241f34 100644 --- a/src/store/modules/AccessControl/SslCertificatesStore.js +++ b/src/store/modules/SecurityAndAccess/CertificatesStore.js @@ -5,12 +5,12 @@ export const CERTIFICATE_TYPES = [ { type: 'HTTPS Certificate', location: '/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/', - label: i18n.t('pageSslCertificates.httpsCertificate'), + label: i18n.t('pageCertificates.httpsCertificate'), }, { type: 'LDAP Certificate', location: '/redfish/v1/AccountService/LDAP/Certificates/', - label: i18n.t('pageSslCertificates.ldapCertificate'), + label: i18n.t('pageCertificates.ldapCertificate'), }, { type: 'TrustStore Certificate', @@ -18,7 +18,7 @@ export const CERTIFICATE_TYPES = [ // Web UI will show 'CA Certificate' instead of // 'TrustStore Certificate' after user testing revealed // the term 'TrustStore Certificate' wasn't recognized/was unfamilar - label: i18n.t('pageSslCertificates.caCertificate'), + label: i18n.t('pageCertificates.caCertificate'), }, ]; @@ -29,7 +29,7 @@ const getCertificateProp = (type, prop) => { return certificate ? certificate[prop] : null; }; -const SslCertificatesStore = { +const CertificatesStore = { namespaced: true, state: { allCertificates: [], @@ -98,15 +98,13 @@ const SslCertificatesStore = { }) .then(() => dispatch('getCertificates')) .then(() => - i18n.t('pageSslCertificates.toast.successAddCertificate', { + i18n.t('pageCertificates.toast.successAddCertificate', { certificate: getCertificateProp(type, 'label'), }) ) .catch((error) => { console.log(error); - throw new Error( - i18n.t('pageSslCertificates.toast.errorAddCertificate') - ); + throw new Error(i18n.t('pageCertificates.toast.errorAddCertificate')); }); }, async replaceCertificate( @@ -125,14 +123,14 @@ const SslCertificatesStore = { ) .then(() => dispatch('getCertificates')) .then(() => - i18n.t('pageSslCertificates.toast.successReplaceCertificate', { + i18n.t('pageCertificates.toast.successReplaceCertificate', { certificate: getCertificateProp(type, 'label'), }) ) .catch((error) => { console.log(error); throw new Error( - i18n.t('pageSslCertificates.toast.errorReplaceCertificate') + i18n.t('pageCertificates.toast.errorReplaceCertificate') ); }); }, @@ -141,14 +139,14 @@ const SslCertificatesStore = { .delete(location) .then(() => dispatch('getCertificates')) .then(() => - i18n.t('pageSslCertificates.toast.successDeleteCertificate', { + i18n.t('pageCertificates.toast.successDeleteCertificate', { certificate: getCertificateProp(type, 'label'), }) ) .catch((error) => { console.log(error); throw new Error( - i18n.t('pageSslCertificates.toast.errorDeleteCertificate') + i18n.t('pageCertificates.toast.errorDeleteCertificate') ); }); }, @@ -201,4 +199,4 @@ const SslCertificatesStore = { }, }; -export default SslCertificatesStore; +export default CertificatesStore; diff --git a/src/store/modules/AccessControl/LdapStore.js b/src/store/modules/SecurityAndAccess/LdapStore.js index 5aa31c2d..5aa31c2d 100644 --- a/src/store/modules/AccessControl/LdapStore.js +++ b/src/store/modules/SecurityAndAccess/LdapStore.js diff --git a/src/store/modules/Settings/SecuritySettingsStore.js b/src/store/modules/SecurityAndAccess/PoliciesStore.js index 5a885425..1e195527 100644 --- a/src/store/modules/Settings/SecuritySettingsStore.js +++ b/src/store/modules/SecurityAndAccess/PoliciesStore.js @@ -1,7 +1,7 @@ import api from '@/store/api'; import i18n from '@/i18n'; -const SecuritySettingsStore = { +const PoliciesStore = { namespaced: true, state: { sshProtocolEnabled: false, @@ -40,22 +40,18 @@ const SecuritySettingsStore = { .patch('/redfish/v1/Managers/bmc/NetworkProtocol', ipmi) .then(() => { if (protocolEnabled) { - return i18n.t('pageSecuritySettings.toast.successIpmiEnabled'); + return i18n.t('pagePolicies.toast.successIpmiEnabled'); } else { - return i18n.t('pageSecuritySettings.toast.successIpmiDisabled'); + return i18n.t('pagePolicies.toast.successIpmiDisabled'); } }) .catch((error) => { console.log(error); commit('setIpmiProtocolEnabled', !protocolEnabled); if (protocolEnabled) { - throw new Error( - i18n.t('pageSecuritySettings.toast.errorIpmiEnabled') - ); + throw new Error(i18n.t('pagePolicies.toast.errorIpmiEnabled')); } else { - throw new Error( - i18n.t('pageSecuritySettings.toast.errorIpmiDisabled') - ); + throw new Error(i18n.t('pagePolicies.toast.errorIpmiDisabled')); } }); }, @@ -70,26 +66,22 @@ const SecuritySettingsStore = { .patch('/redfish/v1/Managers/bmc/NetworkProtocol', ssh) .then(() => { if (protocolEnabled) { - return i18n.t('pageSecuritySettings.toast.successSshEnabled'); + return i18n.t('pagePolicies.toast.successSshEnabled'); } else { - return i18n.t('pageSecuritySettings.toast.successSshDisabled'); + return i18n.t('pagePolicies.toast.successSshDisabled'); } }) .catch((error) => { console.log(error); commit('setSshProtocolEnabled', !protocolEnabled); if (protocolEnabled) { - throw new Error( - i18n.t('pageSecuritySettings.toast.errorSshEnabled') - ); + throw new Error(i18n.t('pagePolicies.toast.errorSshEnabled')); } else { - throw new Error( - i18n.t('pageSecuritySettings.toast.errorSshDisabled') - ); + throw new Error(i18n.t('pagePolicies.toast.errorSshDisabled')); } }); }, }, }; -export default SecuritySettingsStore; +export default PoliciesStore; diff --git a/src/store/modules/AccessControl/ClientSessionsStore.js b/src/store/modules/SecurityAndAccess/SessionsStore.js index 4295d578..54607ab6 100644 --- a/src/store/modules/AccessControl/ClientSessionsStore.js +++ b/src/store/modules/SecurityAndAccess/SessionsStore.js @@ -1,7 +1,7 @@ import api, { getResponseCount } from '@/store/api'; import i18n from '@/i18n'; -const ClientSessionsStore = { +const SessionsStore = { namespaced: true, state: { allConnections: [], @@ -14,7 +14,7 @@ const ClientSessionsStore = { (state.allConnections = allConnections), }, actions: { - async getClientSessionsData({ commit }) { + async getSessionsData({ commit }) { return await api .get('/redfish/v1/SessionService/Sessions') .then((response) => @@ -48,7 +48,7 @@ const ClientSessionsStore = { return await api .all(promises) .then((response) => { - dispatch('getClientSessionsData'); + dispatch('getSessionsData'); return response; }) .then( @@ -58,7 +58,7 @@ const ClientSessionsStore = { if (successCount) { const message = i18n.tc( - 'pageClientSessions.toast.successDelete', + 'pageSessions.toast.successDelete', successCount ); toastMessages.push({ type: 'success', message }); @@ -66,7 +66,7 @@ const ClientSessionsStore = { if (errorCount) { const message = i18n.tc( - 'pageClientSessions.toast.errorDelete', + 'pageSessions.toast.errorDelete', errorCount ); toastMessages.push({ type: 'error', message }); @@ -77,4 +77,4 @@ const ClientSessionsStore = { }, }, }; -export default ClientSessionsStore; +export default SessionsStore; diff --git a/src/store/modules/AccessControl/LocalUserMangementStore.js b/src/store/modules/SecurityAndAccess/UserManagementStore.js index 6bc6ec5d..362f3f64 100644 --- a/src/store/modules/AccessControl/LocalUserMangementStore.js +++ b/src/store/modules/SecurityAndAccess/UserManagementStore.js @@ -1,7 +1,7 @@ import api, { getResponseCount } from '@/store/api'; import i18n from '@/i18n'; -const LocalUserManagementStore = { +const UserManagementStore = { namespaced: true, state: { allUsers: [], @@ -65,9 +65,7 @@ const LocalUserManagementStore = { }) .catch((error) => { console.log(error); - const message = i18n.t( - 'pageLocalUserManagement.toast.errorLoadUsers' - ); + const message = i18n.t('pageUserManagement.toast.errorLoadUsers'); throw new Error(message); }); }, @@ -83,7 +81,7 @@ const LocalUserManagementStore = { .catch((error) => { console.log(error); const message = i18n.t( - 'pageLocalUserManagement.toast.errorLoadAccountSettings' + 'pageUserManagement.toast.errorLoadAccountSettings' ); throw new Error(message); }); @@ -110,16 +108,15 @@ const LocalUserManagementStore = { .post('/redfish/v1/AccountService/Accounts', data) .then(() => dispatch('getUsers')) .then(() => - i18n.t('pageLocalUserManagement.toast.successCreateUser', { + i18n.t('pageUserManagement.toast.successCreateUser', { username, }) ) .catch((error) => { console.log(error); - const message = i18n.t( - 'pageLocalUserManagement.toast.errorCreateUser', - { username } - ); + const message = i18n.t('pageUserManagement.toast.errorCreateUser', { + username, + }); throw new Error(message); }); }, @@ -137,16 +134,15 @@ const LocalUserManagementStore = { .patch(`/redfish/v1/AccountService/Accounts/${originalUsername}`, data) .then(() => dispatch('getUsers')) .then(() => - i18n.t('pageLocalUserManagement.toast.successUpdateUser', { + i18n.t('pageUserManagement.toast.successUpdateUser', { username: originalUsername, }) ) .catch((error) => { console.log(error); - const message = i18n.t( - 'pageLocalUserManagement.toast.errorUpdateUser', - { username: originalUsername } - ); + const message = i18n.t('pageUserManagement.toast.errorUpdateUser', { + username: originalUsername, + }); throw new Error(message); }); }, @@ -155,16 +151,15 @@ const LocalUserManagementStore = { .delete(`/redfish/v1/AccountService/Accounts/${username}`) .then(() => dispatch('getUsers')) .then(() => - i18n.t('pageLocalUserManagement.toast.successDeleteUser', { + i18n.t('pageUserManagement.toast.successDeleteUser', { username, }) ) .catch((error) => { console.log(error); - const message = i18n.t( - 'pageLocalUserManagement.toast.errorDeleteUser', - { username } - ); + const message = i18n.t('pageUserManagement.toast.errorDeleteUser', { + username, + }); throw new Error(message); }); }, @@ -190,7 +185,7 @@ const LocalUserManagementStore = { if (successCount) { const message = i18n.tc( - 'pageLocalUserManagement.toast.successBatchDelete', + 'pageUserManagement.toast.successBatchDelete', successCount ); toastMessages.push({ type: 'success', message }); @@ -198,7 +193,7 @@ const LocalUserManagementStore = { if (errorCount) { const message = i18n.tc( - 'pageLocalUserManagement.toast.errorBatchDelete', + 'pageUserManagement.toast.errorBatchDelete', errorCount ); toastMessages.push({ type: 'error', message }); @@ -233,7 +228,7 @@ const LocalUserManagementStore = { if (successCount) { const message = i18n.tc( - 'pageLocalUserManagement.toast.successBatchEnable', + 'pageUserManagement.toast.successBatchEnable', successCount ); toastMessages.push({ type: 'success', message }); @@ -241,7 +236,7 @@ const LocalUserManagementStore = { if (errorCount) { const message = i18n.tc( - 'pageLocalUserManagement.toast.errorBatchEnable', + 'pageUserManagement.toast.errorBatchEnable', errorCount ); toastMessages.push({ type: 'error', message }); @@ -276,7 +271,7 @@ const LocalUserManagementStore = { if (successCount) { const message = i18n.tc( - 'pageLocalUserManagement.toast.successBatchDisable', + 'pageUserManagement.toast.successBatchDisable', successCount ); toastMessages.push({ type: 'success', message }); @@ -284,7 +279,7 @@ const LocalUserManagementStore = { if (errorCount) { const message = i18n.tc( - 'pageLocalUserManagement.toast.errorBatchDisable', + 'pageUserManagement.toast.errorBatchDisable', errorCount ); toastMessages.push({ type: 'error', message }); @@ -310,16 +305,14 @@ const LocalUserManagementStore = { .patch('/redfish/v1/AccountService', data) //GET new settings to update view .then(() => dispatch('getAccountSettings')) - .then(() => i18n.t('pageLocalUserManagement.toast.successSaveSettings')) + .then(() => i18n.t('pageUserManagement.toast.successSaveSettings')) .catch((error) => { console.log(error); - const message = i18n.t( - 'pageLocalUserManagement.toast.errorSaveSettings' - ); + const message = i18n.t('pageUserManagement.toast.errorSaveSettings'); throw new Error(message); }); }, }, }; -export default LocalUserManagementStore; +export default UserManagementStore; diff --git a/src/views/AccessControl/ClientSessions/index.js b/src/views/AccessControl/ClientSessions/index.js deleted file mode 100644 index 6000ab75..00000000 --- a/src/views/AccessControl/ClientSessions/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import ClientSessions from './ClientSessions.vue'; -export default ClientSessions; diff --git a/src/views/AccessControl/LocalUserManagement/index.js b/src/views/AccessControl/LocalUserManagement/index.js deleted file mode 100644 index 315748af..00000000 --- a/src/views/AccessControl/LocalUserManagement/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import LocalUserManagement from './LocalUserManagement.vue'; -export default LocalUserManagement; diff --git a/src/views/AccessControl/SslCertificates/index.js b/src/views/AccessControl/SslCertificates/index.js deleted file mode 100644 index 03daa565..00000000 --- a/src/views/AccessControl/SslCertificates/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import SslCertificates from './SslCertificates.vue'; -export default SslCertificates; diff --git a/src/views/ChangePassword/ChangePassword.vue b/src/views/ChangePassword/ChangePassword.vue index 039dd0b6..e4319303 100644 --- a/src/views/ChangePassword/ChangePassword.vue +++ b/src/views/ChangePassword/ChangePassword.vue @@ -115,7 +115,7 @@ export default { }; this.$store - .dispatch('localUsers/updateUser', data) + .dispatch('userManagement/updateUser', data) .then(() => this.$router.push('/')) .catch(() => (this.changePasswordError = true)); }, diff --git a/src/views/ProfileSettings/ProfileSettings.vue b/src/views/ProfileSettings/ProfileSettings.vue index 820d386c..35fc800d 100644 --- a/src/views/ProfileSettings/ProfileSettings.vue +++ b/src/views/ProfileSettings/ProfileSettings.vue @@ -30,7 +30,7 @@ > <b-form-text id="password-help-block"> {{ - $t('pageLocalUserManagement.modal.passwordMustBeBetween', { + $t('pageUserManagement.modal.passwordMustBeBetween', { min: passwordRequirements.minLength, max: passwordRequirements.maxLength, }) @@ -160,7 +160,7 @@ export default { return this.$store.getters['global/username']; }, passwordRequirements() { - return this.$store.getters['localUsers/accountPasswordRequirements']; + return this.$store.getters['userManagement/accountPasswordRequirements']; }, timezone() { return this.localOffset(); @@ -169,7 +169,7 @@ export default { created() { this.startLoader(); this.$store - .dispatch('localUsers/getAccountSettings') + .dispatch('userManagement/getAccountSettings') .finally(() => this.endLoader()); }, validations() { @@ -196,7 +196,7 @@ export default { }; this.$store - .dispatch('localUsers/updateUser', userData) + .dispatch('userManagement/updateUser', userData) .then((message) => { (this.form.newPassword = ''), (this.form.confirmPassword = ''); this.$v.$reset(); diff --git a/src/views/AccessControl/SslCertificates/SslCertificates.vue b/src/views/SecurityAndAccess/Certificates/Certificates.vue index 4ce9a707..9d208897 100644 --- a/src/views/AccessControl/SslCertificates/SslCertificates.vue +++ b/src/views/SecurityAndAccess/Certificates/Certificates.vue @@ -6,11 +6,11 @@ <!-- Expired certificates banner --> <alert :show="expiredCertificateTypes.length > 0" variant="danger"> <template v-if="expiredCertificateTypes.length > 1"> - {{ $t('pageSslCertificates.alert.certificatesExpiredMessage') }} + {{ $t('pageCertificates.alert.certificatesExpiredMessage') }} </template> <template v-else> {{ - $t('pageSslCertificates.alert.certificateExpiredMessage', { + $t('pageCertificates.alert.certificateExpiredMessage', { certificate: expiredCertificateTypes[0], }) }} @@ -19,11 +19,11 @@ <!-- Expiring certificates banner --> <alert :show="expiringCertificateTypes.length > 0" variant="warning"> <template v-if="expiringCertificateTypes.length > 1"> - {{ $t('pageSslCertificates.alert.certificatesExpiringMessage') }} + {{ $t('pageCertificates.alert.certificatesExpiringMessage') }} </template> <template v-else> {{ - $t('pageSslCertificates.alert.certificateExpiringMessage', { + $t('pageCertificates.alert.certificateExpiringMessage', { certificate: expiringCertificateTypes[0], }) }} @@ -35,11 +35,11 @@ <b-col xl="11" class="text-right"> <b-button v-b-modal.generate-csr - data-test-id="sslCertificates-button-generateCsr" + data-test-id="certificates-button-generateCsr" variant="link" > <icon-add /> - {{ $t('pageSslCertificates.generateCsr') }} + {{ $t('pageCertificates.generateCsr') }} </b-button> <b-button variant="primary" @@ -47,7 +47,7 @@ @click="initModalUploadCertificate(null)" > <icon-add /> - {{ $t('pageSslCertificates.addNewCertificate') }} + {{ $t('pageCertificates.addNewCertificate') }} </b-button> </b-col> </b-row> @@ -114,7 +114,7 @@ import BVToastMixin from '@/components/Mixins/BVToastMixin'; import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin'; export default { - name: 'SslCertificates', + name: 'Certificates', components: { Alert, IconAdd, @@ -137,23 +137,23 @@ export default { fields: [ { key: 'certificate', - label: this.$t('pageSslCertificates.table.certificate'), + label: this.$t('pageCertificates.table.certificate'), }, { key: 'issuedBy', - label: this.$t('pageSslCertificates.table.issuedBy'), + label: this.$t('pageCertificates.table.issuedBy'), }, { key: 'issuedTo', - label: this.$t('pageSslCertificates.table.issuedTo'), + label: this.$t('pageCertificates.table.issuedTo'), }, { key: 'validFrom', - label: this.$t('pageSslCertificates.table.validFrom'), + label: this.$t('pageCertificates.table.validFrom'), }, { key: 'validUntil', - label: this.$t('pageSslCertificates.table.validUntil'), + label: this.$t('pageCertificates.table.validUntil'), }, { key: 'actions', @@ -165,7 +165,7 @@ export default { }, computed: { certificates() { - return this.$store.getters['sslCertificates/allCertificates']; + return this.$store.getters['certificates/allCertificates']; }, tableItems() { return this.certificates.map((certificate) => { @@ -174,11 +174,11 @@ export default { actions: [ { value: 'replace', - title: this.$t('pageSslCertificates.replaceCertificate'), + title: this.$t('pageCertificates.replaceCertificate'), }, { value: 'delete', - title: this.$t('pageSslCertificates.deleteCertificate'), + title: this.$t('pageCertificates.deleteCertificate'), enabled: certificate.type === 'TrustStore Certificate' ? true : false, }, @@ -187,7 +187,7 @@ export default { }); }, certificatesForUpload() { - return this.$store.getters['sslCertificates/availableUploadTypes']; + return this.$store.getters['certificates/availableUploadTypes']; }, bmcTime() { return this.$store.getters['global/bmcTime']; @@ -215,7 +215,7 @@ export default { this.startLoader(); await this.$store.dispatch('global/getBmcTime'); this.$store - .dispatch('sslCertificates/getCertificates') + .dispatch('certificates/getCertificates') .finally(() => this.endLoader()); }, methods: { @@ -238,12 +238,12 @@ export default { initModalDeleteCertificate(certificate) { this.$bvModal .msgBoxConfirm( - this.$t('pageSslCertificates.modal.deleteConfirmMessage', { + this.$t('pageCertificates.modal.deleteConfirmMessage', { issuedBy: certificate.issuedBy, certificate: certificate.certificate, }), { - title: this.$t('pageSslCertificates.deleteCertificate'), + title: this.$t('pageCertificates.deleteCertificate'), okTitle: this.$t('global.action.delete'), cancelTitle: this.$t('global.action.cancel'), } @@ -264,7 +264,7 @@ export default { addNewCertificate(file, type) { this.startLoader(); this.$store - .dispatch('sslCertificates/addNewCertificate', { file, type }) + .dispatch('certificates/addNewCertificate', { file, type }) .then((success) => this.successToast(success)) .catch(({ message }) => this.errorToast(message)) .finally(() => this.endLoader()); @@ -276,7 +276,7 @@ export default { reader.onloadend = (event) => { const certificateString = event.target.result; this.$store - .dispatch('sslCertificates/replaceCertificate', { + .dispatch('certificates/replaceCertificate', { certificateString, type, location, @@ -289,7 +289,7 @@ export default { deleteCertificate({ type, location }) { this.startLoader(); this.$store - .dispatch('sslCertificates/deleteCertificate', { + .dispatch('certificates/deleteCertificate', { type, location, }) diff --git a/src/views/AccessControl/SslCertificates/CsrCountryCodes.js b/src/views/SecurityAndAccess/Certificates/CsrCountryCodes.js index a2d70007..a2d70007 100644 --- a/src/views/AccessControl/SslCertificates/CsrCountryCodes.js +++ b/src/views/SecurityAndAccess/Certificates/CsrCountryCodes.js diff --git a/src/views/AccessControl/SslCertificates/ModalGenerateCsr.vue b/src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue index 6544c2c4..d76f9fe1 100644 --- a/src/views/AccessControl/SslCertificates/ModalGenerateCsr.vue +++ b/src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue @@ -5,9 +5,7 @@ ref="modal" size="lg" no-stacking - :title=" - $t('pageSslCertificates.modal.generateACertificateSigningRequest') - " + :title="$t('pageCertificates.modal.generateACertificateSigningRequest')" @ok="onOkGenerateCsrModal" @cancel="resetForm" @hidden="$v.$reset()" @@ -19,7 +17,7 @@ <b-row> <b-col lg="6"> <b-form-group - :label="$t('pageSslCertificates.modal.certificateType')" + :label="$t('pageCertificates.modal.certificateType')" label-for="certificate-type" > <b-form-select @@ -43,7 +41,7 @@ </b-col> <b-col lg="6"> <b-form-group - :label="$t('pageSslCertificates.modal.country')" + :label="$t('pageCertificates.modal.country')" label-for="country" > <b-form-select @@ -69,7 +67,7 @@ <b-row> <b-col lg="6"> <b-form-group - :label="$t('pageSslCertificates.modal.state')" + :label="$t('pageCertificates.modal.state')" label-for="state" > <b-form-input @@ -86,7 +84,7 @@ </b-col> <b-col lg="6"> <b-form-group - :label="$t('pageSslCertificates.modal.city')" + :label="$t('pageCertificates.modal.city')" label-for="city" > <b-form-input @@ -105,7 +103,7 @@ <b-row> <b-col lg="6"> <b-form-group - :label="$t('pageSslCertificates.modal.companyName')" + :label="$t('pageCertificates.modal.companyName')" label-for="company-name" > <b-form-input @@ -122,7 +120,7 @@ </b-col> <b-col lg="6"> <b-form-group - :label="$t('pageSslCertificates.modal.companyUnit')" + :label="$t('pageCertificates.modal.companyUnit')" label-for="company-unit" > <b-form-input @@ -141,7 +139,7 @@ <b-row> <b-col lg="6"> <b-form-group - :label="$t('pageSslCertificates.modal.commonName')" + :label="$t('pageCertificates.modal.commonName')" label-for="common-name" > <b-form-input @@ -159,7 +157,7 @@ <b-col lg="6"> <b-form-group label-for="challenge-password"> <template #label> - {{ $t('pageSslCertificates.modal.challengePassword') }} - + {{ $t('pageCertificates.modal.challengePassword') }} - <span class="form-text d-inline"> {{ $t('global.form.optional') }} </span> @@ -177,7 +175,7 @@ <b-col lg="6"> <b-form-group label-for="contact-person"> <template #label> - {{ $t('pageSslCertificates.modal.contactPerson') }} - + {{ $t('pageCertificates.modal.contactPerson') }} - <span class="form-text d-inline"> {{ $t('global.form.optional') }} </span> @@ -193,7 +191,7 @@ <b-col lg="6"> <b-form-group label-for="email-address"> <template #label> - {{ $t('pageSslCertificates.modal.emailAddress') }} - + {{ $t('pageCertificates.modal.emailAddress') }} - <span class="form-text d-inline"> {{ $t('global.form.optional') }} </span> @@ -211,15 +209,13 @@ <b-col lg="12"> <b-form-group label-for="alternate-name"> <template #label> - {{ $t('pageSslCertificates.modal.alternateName') }} - + {{ $t('pageCertificates.modal.alternateName') }} - <span class="form-text d-inline"> {{ $t('global.form.optional') }} </span> </template> <b-form-text id="alternate-name-help-block"> - {{ - $t('pageSslCertificates.modal.alternateNameHelperText') - }} + {{ $t('pageCertificates.modal.alternateNameHelperText') }} </b-form-text> <b-form-tags v-model="form.alternateName" @@ -232,7 +228,7 @@ 'aria-describedby': 'alternate-name-help-block', }" :duplicate-tag-text=" - $t('pageSslCertificates.modal.duplicateAlternateName') + $t('pageCertificates.modal.duplicateAlternateName') " placeholder="" data-test-id="modalGenerateCsr-input-alternateName" @@ -249,10 +245,10 @@ <b-row> <b-col lg="12"> <p class="col-form-label"> - {{ $t('pageSslCertificates.modal.privateKey') }} + {{ $t('pageCertificates.modal.privateKey') }} </p> <b-form-group - :label="$t('pageSslCertificates.modal.keyPairAlgorithm')" + :label="$t('pageCertificates.modal.keyPairAlgorithm')" label-for="key-pair-algorithm" > <b-form-select @@ -279,7 +275,7 @@ <b-col lg="12"> <template v-if="$v.form.keyPairAlgorithm.$model === 'EC'"> <b-form-group - :label="$t('pageSslCertificates.modal.keyCurveId')" + :label="$t('pageCertificates.modal.keyCurveId')" label-for="key-curve-id" > <b-form-select @@ -303,7 +299,7 @@ </template> <template v-if="$v.form.keyPairAlgorithm.$model === 'RSA'"> <b-form-group - :label="$t('pageSslCertificates.modal.keyBitLength')" + :label="$t('pageCertificates.modal.keyBitLength')" label-for="key-bit-length" > <b-form-select @@ -342,7 +338,7 @@ data-test-id="modalGenerateCsr-button-ok" @click="ok()" > - {{ $t('pageSslCertificates.generateCsr') }} + {{ $t('pageCertificates.generateCsr') }} </b-button> </template> </b-modal> @@ -350,7 +346,7 @@ id="csr-string" no-stacking size="lg" - :title="$t('pageSslCertificates.modal.certificateSigningRequest')" + :title="$t('pageCertificates.modal.certificateSigningRequest')" @hidden="onHiddenCsrStringModal" > {{ csrString }} @@ -383,7 +379,7 @@ import IconCheckmark from '@carbon/icons-vue/es/checkmark/20'; import { required, requiredIf } from 'vuelidate/lib/validators'; import { COUNTRY_LIST } from './CsrCountryCodes'; -import { CERTIFICATE_TYPES } from '@/store/modules/AccessControl/SslCertificatesStore'; +import { CERTIFICATE_TYPES } from '@/store/modules/SecurityAndAccess/CertificatesStore'; import BVToastMixin from '@/components/Mixins/BVToastMixin'; import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js'; @@ -459,7 +455,7 @@ export default { this.$v.$touch(); if (this.$v.$invalid) return; this.$store - .dispatch('sslCertificates/generateCsr', this.form) + .dispatch('certificates/generateCsr', this.form) .then(({ data: { CSRString } }) => { this.csrString = CSRString; this.$bvModal.show('csr-string'); diff --git a/src/views/AccessControl/SslCertificates/ModalUploadCertificate.vue b/src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue index cafbd935..f4db7a26 100644 --- a/src/views/AccessControl/SslCertificates/ModalUploadCertificate.vue +++ b/src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue @@ -2,17 +2,17 @@ <b-modal id="upload-certificate" ref="modal" @ok="onOk" @hidden="resetForm"> <template #modal-title> <template v-if="certificate"> - {{ $t('pageSslCertificates.replaceCertificate') }} + {{ $t('pageCertificates.replaceCertificate') }} </template> <template v-else> - {{ $t('pageSslCertificates.addNewCertificate') }} + {{ $t('pageCertificates.addNewCertificate') }} </template> </template> <b-form> <!-- Replace Certificate type --> <template v-if="certificate !== null"> <dl class="mb-4"> - <dt>{{ $t('pageSslCertificates.modal.certificateType') }}</dt> + <dt>{{ $t('pageCertificates.modal.certificateType') }}</dt> <dd>{{ certificate.certificate }}</dd> </dl> </template> @@ -20,7 +20,7 @@ <!-- Add new Certificate type --> <template v-else> <b-form-group - :label="$t('pageSslCertificates.modal.certificateType')" + :label="$t('pageCertificates.modal.certificateType')" label-for="certificate-type" > <b-form-select @@ -39,7 +39,7 @@ </b-form-group> </template> - <b-form-group :label="$t('pageSslCertificates.modal.certificateFile')"> + <b-form-group :label="$t('pageCertificates.modal.certificateFile')"> <form-file id="certificate-file" v-model="form.file" @@ -100,7 +100,7 @@ export default { }, computed: { certificateTypes() { - return this.$store.getters['sslCertificates/availableUploadTypes']; + return this.$store.getters['certificates/availableUploadTypes']; }, certificateOptions() { return this.certificateTypes.map(({ type, label }) => { diff --git a/src/views/SecurityAndAccess/Certificates/index.js b/src/views/SecurityAndAccess/Certificates/index.js new file mode 100644 index 00000000..aff57b59 --- /dev/null +++ b/src/views/SecurityAndAccess/Certificates/index.js @@ -0,0 +1,2 @@ +import Certificates from './Certificates.vue'; +export default Certificates; diff --git a/src/views/AccessControl/Ldap/Ldap.vue b/src/views/SecurityAndAccess/Ldap/Ldap.vue index 78bb830b..1f2108de 100644 --- a/src/views/AccessControl/Ldap/Ldap.vue +++ b/src/views/SecurityAndAccess/Ldap/Ldap.vue @@ -63,7 +63,7 @@ </dl> <b-link class="d-inline-block mb-4 m-md-0" - to="/access-control/ssl-certificates" + to="/security-and-access/certificates" > {{ $t('pageLdap.form.manageSslCertificates') }} </b-link> @@ -283,7 +283,7 @@ export default { 'activeDirectory', ]), sslCertificates() { - return this.$store.getters['sslCertificates/allCertificates']; + return this.$store.getters['certificates/allCertificates']; }, caCertificateExpiration() { const caCertificate = find(this.sslCertificates, { @@ -351,7 +351,7 @@ export default { .dispatch('ldap/getAccountSettings') .finally(() => this.endLoader()); this.$store - .dispatch('sslCertificates/getCertificates') + .dispatch('certificates/getCertificates') .finally(() => this.endLoader()); this.setFormValues(); }, diff --git a/src/views/AccessControl/Ldap/ModalAddRoleGroup.vue b/src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue index b6b77e9e..6ea2561a 100644 --- a/src/views/AccessControl/Ldap/ModalAddRoleGroup.vue +++ b/src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue @@ -108,7 +108,7 @@ export default { }, computed: { accountRoles() { - return this.$store.getters['localUsers/accountRoles']; + return this.$store.getters['userManagement/accountRoles']; }, }, watch: { diff --git a/src/views/AccessControl/Ldap/TableRoleGroups.vue b/src/views/SecurityAndAccess/Ldap/TableRoleGroups.vue index 9d05ceaf..6e231110 100644 --- a/src/views/AccessControl/Ldap/TableRoleGroups.vue +++ b/src/views/SecurityAndAccess/Ldap/TableRoleGroups.vue @@ -179,7 +179,7 @@ export default { }, }, created() { - this.$store.dispatch('localUsers/getAccountRoles'); + this.$store.dispatch('userManagement/getAccountRoles'); }, methods: { onBatchAction() { diff --git a/src/views/AccessControl/Ldap/index.js b/src/views/SecurityAndAccess/Ldap/index.js index 6ae3abfc..6ae3abfc 100644 --- a/src/views/AccessControl/Ldap/index.js +++ b/src/views/SecurityAndAccess/Ldap/index.js diff --git a/src/views/Settings/SecuritySettings/SecuritySettings.vue b/src/views/SecurityAndAccess/Policies/Policies.vue index ec8d2589..41b95366 100644 --- a/src/views/Settings/SecuritySettings/SecuritySettings.vue +++ b/src/views/SecurityAndAccess/Policies/Policies.vue @@ -3,26 +3,24 @@ <page-title /> <b-row> <b-col md="8"> - <page-section - :section-title="$t('pageSecuritySettings.networkServices')" - > + <page-section :section-title="$t('pagePolicies.networkServices')"> <b-row class="setting-section"> <b-col class="d-flex align-items-center justify-content-between"> <dl class="mr-3 w-75"> - <dt>{{ $t('pageSecuritySettings.ssh') }}</dt> + <dt>{{ $t('pagePolicies.ssh') }}</dt> <dd> - {{ $t('pageSecuritySettings.sshDescription') }} + {{ $t('pagePolicies.sshDescription') }} </dd> </dl> <b-form-checkbox id="sshSwitch" v-model="sshProtocolState" - data-test-id="security-toggle-bmcShell" + data-test-id="policies-toggle-bmcShell" switch @change="changeSshProtocolState" > <span class="sr-only"> - {{ $t('pageSecuritySettings.ssh') }} + {{ $t('pagePolicies.ssh') }} </span> <span v-if="sshProtocolState"> {{ $t('global.status.enabled') }} @@ -34,20 +32,20 @@ <b-row class="setting-section"> <b-col class="d-flex align-items-center justify-content-between"> <dl class="mt-3 mr-3 w-75"> - <dt>{{ $t('pageSecuritySettings.ipmi') }}</dt> + <dt>{{ $t('pagePolicies.ipmi') }}</dt> <dd> - {{ $t('pageSecuritySettings.ipmiDescription') }} + {{ $t('pagePolicies.ipmiDescription') }} </dd> </dl> <b-form-checkbox id="ipmiSwitch" v-model="ipmiProtocolState" - data-test-id="security-toggle-networkIpmi" + data-test-id="polices-toggle-networkIpmi" switch @change="changeIpmiProtocolState" > <span class="sr-only"> - {{ $t('pageSecuritySettings.ipmi') }} + {{ $t('pagePolicies.ipmi') }} </span> <span v-if="ipmiProtocolState"> {{ $t('global.status.enabled') }} @@ -70,7 +68,7 @@ import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin'; import BVToastMixin from '@/components/Mixins/BVToastMixin'; export default { - name: 'SecuritySettings', + name: 'Policies', components: { PageTitle, PageSection }, mixins: [LoadingBarMixin, BVToastMixin], beforeRouteLeave(to, from, next) { @@ -80,7 +78,7 @@ export default { computed: { sshProtocolState: { get() { - return this.$store.getters['securitySettings/sshProtocolEnabled']; + return this.$store.getters['policies/sshProtocolEnabled']; }, set(newValue) { return newValue; @@ -88,7 +86,7 @@ export default { }, ipmiProtocolState: { get() { - return this.$store.getters['securitySettings/ipmiProtocolEnabled']; + return this.$store.getters['policies/ipmiProtocolEnabled']; }, set(newValue) { return newValue; @@ -98,19 +96,19 @@ export default { created() { this.startLoader(); this.$store - .dispatch('securitySettings/getNetworkProtocolStatus') + .dispatch('policies/getNetworkProtocolStatus') .finally(() => this.endLoader()); }, methods: { changeIpmiProtocolState(state) { this.$store - .dispatch('securitySettings/saveIpmiProtocolState', state) + .dispatch('policies/saveIpmiProtocolState', state) .then((message) => this.successToast(message)) .catch(({ message }) => this.errorToast(message)); }, changeSshProtocolState(state) { this.$store - .dispatch('securitySettings/saveSshProtocolState', state) + .dispatch('policies/saveSshProtocolState', state) .then((message) => this.successToast(message)) .catch(({ message }) => this.errorToast(message)); }, diff --git a/src/views/SecurityAndAccess/Policies/index.js b/src/views/SecurityAndAccess/Policies/index.js new file mode 100644 index 00000000..77023908 --- /dev/null +++ b/src/views/SecurityAndAccess/Policies/index.js @@ -0,0 +1,2 @@ +import Policies from './Policies.vue'; +export default Policies; diff --git a/src/views/AccessControl/ClientSessions/ClientSessions.vue b/src/views/SecurityAndAccess/Sessions/Sessions.vue index b61b2032..bd4c06a9 100644 --- a/src/views/AccessControl/ClientSessions/ClientSessions.vue +++ b/src/views/SecurityAndAccess/Sessions/Sessions.vue @@ -4,8 +4,8 @@ <b-row class="align-items-end"> <b-col sm="6" md="5" xl="4"> <search - :placeholder="$t('pageClientSessions.table.searchSessions')" - data-test-id="clientSessions-input-searchSessions" + :placeholder="$t('pageSessions.table.searchSessions')" + data-test-id="sessions-input-searchSessions" @change-search="onChangeSearchInput" @clear-search="onClearSearchInput" /> @@ -49,7 +49,7 @@ <template #head(checkbox)> <b-form-checkbox v-model="tableHeaderCheckboxModel" - data-test-id="clientSessions-checkbox-selectAll" + data-test-id="sessions-checkbox-selectAll" :indeterminate="tableHeaderCheckboxIndeterminate" @change="onChangeHeaderCheckbox($refs.table)" > @@ -59,7 +59,7 @@ <template #cell(checkbox)="row"> <b-form-checkbox v-model="row.rowSelected" - :data-test-id="`clientSessions-checkbox-selectRow-${row.index}`" + :data-test-id="`sessions-checkbox-selectRow-${row.index}`" @change="toggleSelectRow($refs.table, row.index)" > <span class="sr-only">{{ $t('global.table.selectItem') }}</span> @@ -75,7 +75,7 @@ :title="action.title" :row-data="row.item" :btn-icon-only="false" - :data-test-id="`clientSessions-button-disconnect-${row.index}`" + :data-test-id="`sessions-button-disconnect-${row.index}`" @click-table-action="onTableRowAction($event, row.item)" ></table-row-action> </template> @@ -164,15 +164,15 @@ export default { }, { key: 'clientID', - label: this.$t('pageClientSessions.table.clientID'), + label: this.$t('pageSessions.table.clientID'), }, { key: 'username', - label: this.$t('pageClientSessions.table.username'), + label: this.$t('pageSessions.table.username'), }, { key: 'ipAddress', - label: this.$t('pageClientSessions.table.ipAddress'), + label: this.$t('pageSessions.table.ipAddress'), }, { key: 'actions', @@ -182,7 +182,7 @@ export default { batchActions: [ { value: 'disconnect', - label: this.$t('pageClientSessions.action.disconnect'), + label: this.$t('pageSessions.action.disconnect'), }, ], currentPage: currentPage, @@ -202,25 +202,23 @@ export default { : this.allConnections.length; }, allConnections() { - return this.$store.getters['clientSessions/allConnections'].map( - (session) => { - return { - ...session, - actions: [ - { - value: 'disconnect', - title: this.$t('pageClientSessions.action.disconnect'), - }, - ], - }; - } - ); + return this.$store.getters['sessions/allConnections'].map((session) => { + return { + ...session, + actions: [ + { + value: 'disconnect', + title: this.$t('pageSessions.action.disconnect'), + }, + ], + }; + }); }, }, created() { this.startLoader(); this.$store - .dispatch('clientSessions/getClientSessionsData') + .dispatch('sessions/getSessionsData') .finally(() => this.endLoader()); }, methods: { @@ -232,7 +230,7 @@ export default { }, disconnectSessions(uris) { this.$store - .dispatch('clientSessions/disconnectSessions', uris) + .dispatch('sessions/disconnectSessions', uris) .then((messages) => { messages.forEach(({ type, message }) => { if (type === 'success') { @@ -246,14 +244,11 @@ export default { onTableRowAction(action, { uri }) { if (action === 'disconnect') { this.$bvModal - .msgBoxConfirm( - this.$tc('pageClientSessions.modal.disconnectMessage'), - { - title: this.$tc('pageClientSessions.modal.disconnectTitle'), - okTitle: this.$t('pageClientSessions.action.disconnect'), - cancelTitle: this.$t('global.action.cancel'), - } - ) + .msgBoxConfirm(this.$tc('pageSessions.modal.disconnectMessage'), { + title: this.$tc('pageSessions.modal.disconnectTitle'), + okTitle: this.$t('pageSessions.action.disconnect'), + cancelTitle: this.$t('global.action.cancel'), + }) .then((deleteConfirmed) => { if (deleteConfirmed) this.disconnectSessions([uri]); }); @@ -265,15 +260,15 @@ export default { this.$bvModal .msgBoxConfirm( this.$tc( - 'pageClientSessions.modal.disconnectMessage', + 'pageSessions.modal.disconnectMessage', this.selectedRows.length ), { title: this.$tc( - 'pageClientSessions.modal.disconnectTitle', + 'pageSessions.modal.disconnectTitle', this.selectedRows.length ), - okTitle: this.$t('pageClientSessions.action.disconnect'), + okTitle: this.$t('pageSessions.action.disconnect'), cancelTitle: this.$t('global.action.cancel'), } ) diff --git a/src/views/SecurityAndAccess/Sessions/index.js b/src/views/SecurityAndAccess/Sessions/index.js new file mode 100644 index 00000000..aa113aff --- /dev/null +++ b/src/views/SecurityAndAccess/Sessions/index.js @@ -0,0 +1,2 @@ +import Sessions from './Sessions.vue'; +export default Sessions; diff --git a/src/views/AccessControl/LocalUserManagement/ModalSettings.vue b/src/views/SecurityAndAccess/UserManagement/ModalSettings.vue index bf274e5a..0f05123c 100644 --- a/src/views/AccessControl/LocalUserManagement/ModalSettings.vue +++ b/src/views/SecurityAndAccess/UserManagement/ModalSettings.vue @@ -2,7 +2,7 @@ <b-modal id="modal-settings" ref="modal" - :title="$t('pageLocalUserManagement.accountPolicySettings')" + :title="$t('pageUserManagement.accountPolicySettings')" @hidden="resetForm" > <b-form id="form-settings" novalidate @submit.prevent="handleSubmit"> @@ -10,9 +10,7 @@ <b-row> <b-col> <b-form-group - :label=" - $t('pageLocalUserManagement.modal.maxFailedLoginAttempts') - " + :label="$t('pageUserManagement.modal.maxFailedLoginAttempts')" label-for="lockout-threshold" > <b-form-text id="lockout-threshold-help-block"> @@ -28,7 +26,7 @@ v-model.number="form.lockoutThreshold" type="number" aria-describedby="lockout-threshold-help-block" - data-test-id="localUserManagement-input-lockoutThreshold" + data-test-id="userManagement-input-lockoutThreshold" :state="getValidationState($v.form.lockoutThreshold)" @input="$v.form.lockoutThreshold.$touch()" /> @@ -54,38 +52,36 @@ </b-col> <b-col> <b-form-group - :label="$t('pageLocalUserManagement.modal.userUnlockMethod')" + :label="$t('pageUserManagement.modal.userUnlockMethod')" > <b-form-radio v-model="form.unlockMethod" name="unlock-method" class="mb-2" :value="0" - data-test-id="localUserManagement-radio-manualUnlock" + data-test-id="userManagement-radio-manualUnlock" @input="$v.form.unlockMethod.$touch()" > - {{ $t('pageLocalUserManagement.modal.manual') }} + {{ $t('pageUserManagement.modal.manual') }} </b-form-radio> <b-form-radio v-model="form.unlockMethod" name="unlock-method" :value="1" - data-test-id="localUserManagement-radio-automaticUnlock" + data-test-id="userManagement-radio-automaticUnlock" @input="$v.form.unlockMethod.$touch()" > - {{ $t('pageLocalUserManagement.modal.automaticAfterTimeout') }} + {{ $t('pageUserManagement.modal.automaticAfterTimeout') }} </b-form-radio> <div class="mt-3 ml-4"> <b-form-text id="lockout-duration-help-block"> - {{ - $t('pageLocalUserManagement.modal.timeoutDurationSeconds') - }} + {{ $t('pageUserManagement.modal.timeoutDurationSeconds') }} </b-form-text> <b-form-input v-model.number="form.lockoutDuration" aria-describedby="lockout-duration-help-block" type="number" - data-test-id="localUserManagement-input-lockoutDuration" + data-test-id="userManagement-input-lockoutDuration" :state="getValidationState($v.form.lockoutDuration)" :readonly="$v.form.unlockMethod.$model === 0" @input="$v.form.lockoutDuration.$touch()" @@ -107,7 +103,7 @@ <template #modal-footer="{ cancel }"> <b-button variant="secondary" - data-test-id="localUserManagement-button-cancel" + data-test-id="userManagement-button-cancel" @click="cancel()" > {{ $t('global.action.cancel') }} @@ -116,7 +112,7 @@ form="form-settings" type="submit" variant="primary" - data-test-id="localUserManagement-button-submit" + data-test-id="userManagement-button-submit" @click="onOk" > {{ $t('global.action.save') }} diff --git a/src/views/AccessControl/LocalUserManagement/ModalUser.vue b/src/views/SecurityAndAccess/UserManagement/ModalUser.vue index 202ae8e6..0f8757ce 100644 --- a/src/views/AccessControl/LocalUserManagement/ModalUser.vue +++ b/src/views/SecurityAndAccess/UserManagement/ModalUser.vue @@ -2,10 +2,10 @@ <b-modal id="modal-user" ref="modal" @hidden="resetForm"> <template #modal-title> <template v-if="newUser"> - {{ $t('pageLocalUserManagement.addUser') }} + {{ $t('pageUserManagement.addUser') }} </template> <template v-else> - {{ $t('pageLocalUserManagement.editUser') }} + {{ $t('pageUserManagement.editUser') }} </template> </template> <b-form id="form-user" novalidate @submit.prevent="handleSubmit"> @@ -15,42 +15,38 @@ <b-col sm="9"> <alert :show="true" variant="warning" small> <template v-if="!$v.form.manualUnlock.$dirty"> - {{ $t('pageLocalUserManagement.modal.accountLocked') }} + {{ $t('pageUserManagement.modal.accountLocked') }} </template> <template v-else> - {{ - $t('pageLocalUserManagement.modal.clickSaveToUnlockAccount') - }} + {{ $t('pageUserManagement.modal.clickSaveToUnlockAccount') }} </template> </alert> </b-col> <b-col sm="3"> <input v-model="form.manualUnlock" - data-test-id="localUserManagement-input-manualUnlock" + data-test-id="userManagement-input-manualUnlock" type="hidden" value="false" /> <b-button variant="primary" :disabled="$v.form.manualUnlock.$dirty" - data-test-id="localUserManagement-button-manualUnlock" + data-test-id="userManagement-button-manualUnlock" @click="$v.form.manualUnlock.$touch()" > - {{ $t('pageLocalUserManagement.modal.unlock') }} + {{ $t('pageUserManagement.modal.unlock') }} </b-button> </b-col> </b-row> <b-row> <b-col> - <b-form-group - :label="$t('pageLocalUserManagement.modal.accountStatus')" - > + <b-form-group :label="$t('pageUserManagement.modal.accountStatus')"> <b-form-radio v-model="form.status" name="user-status" :value="true" - data-test-id="localUserManagement-radioButton-statusEnabled" + data-test-id="userManagement-radioButton-statusEnabled" @input="$v.form.status.$touch()" > {{ $t('global.status.enabled') }} @@ -58,7 +54,7 @@ <b-form-radio v-model="form.status" name="user-status" - data-test-id="localUserManagement-radioButton-statusDisabled" + data-test-id="userManagement-radioButton-statusDisabled" :value="false" @input="$v.form.status.$touch()" > @@ -66,15 +62,15 @@ </b-form-radio> </b-form-group> <b-form-group - :label="$t('pageLocalUserManagement.modal.username')" + :label="$t('pageUserManagement.modal.username')" label-for="username" > <b-form-text id="username-help-block"> - {{ $t('pageLocalUserManagement.modal.cannotStartWithANumber') }} + {{ $t('pageUserManagement.modal.cannotStartWithANumber') }} <br /> {{ $t( - 'pageLocalUserManagement.modal.noSpecialCharactersExceptUnderscore' + 'pageUserManagement.modal.noSpecialCharactersExceptUnderscore' ) }} </b-form-text> @@ -83,7 +79,7 @@ v-model="form.username" type="text" aria-describedby="username-help-block" - data-test-id="localUserManagement-input-username" + data-test-id="userManagement-input-username" :state="getValidationState($v.form.username)" :disabled="!newUser && originalUsername === 'root'" @input="$v.form.username.$touch()" @@ -103,14 +99,14 @@ </b-form-invalid-feedback> </b-form-group> <b-form-group - :label="$t('pageLocalUserManagement.modal.privilege')" + :label="$t('pageUserManagement.modal.privilege')" label-for="privilege" > <b-form-select id="privilege" v-model="form.privilege" :options="privilegeTypes" - data-test-id="localUserManagement-select-privilege" + data-test-id="userManagement-select-privilege" :state="getValidationState($v.form.privilege)" @input="$v.form.privilege.$touch()" > @@ -129,12 +125,12 @@ </b-col> <b-col> <b-form-group - :label="$t('pageLocalUserManagement.modal.userPassword')" + :label="$t('pageUserManagement.modal.userPassword')" label-for="password" > <b-form-text id="password-help-block"> {{ - $t('pageLocalUserManagement.modal.passwordMustBeBetween', { + $t('pageUserManagement.modal.passwordMustBeBetween', { min: passwordRequirements.minLength, max: passwordRequirements.maxLength, }) @@ -145,7 +141,7 @@ id="password" v-model="form.password" type="password" - data-test-id="localUserManagement-input-password" + data-test-id="userManagement-input-password" aria-describedby="password-help-block" :state="getValidationState($v.form.password)" class="form-control-with-button" @@ -161,27 +157,24 @@ " > {{ - $t( - 'pageLocalUserManagement.modal.passwordMustBeBetween', - { - min: passwordRequirements.minLength, - max: passwordRequirements.maxLength, - } - ) + $t('pageUserManagement.modal.passwordMustBeBetween', { + min: passwordRequirements.minLength, + max: passwordRequirements.maxLength, + }) }} </template> </b-form-invalid-feedback> </input-password-toggle> </b-form-group> <b-form-group - :label="$t('pageLocalUserManagement.modal.confirmUserPassword')" + :label="$t('pageUserManagement.modal.confirmUserPassword')" label-for="password-confirmation" > <input-password-toggle> <b-form-input id="password-confirmation" v-model="form.passwordConfirmation" - data-test-id="localUserManagement-input-passwordConfirmation" + data-test-id="userManagement-input-passwordConfirmation" type="password" :state="getValidationState($v.form.passwordConfirmation)" class="form-control-with-button" @@ -194,9 +187,7 @@ <template v-else-if="!$v.form.passwordConfirmation.sameAsPassword" > - {{ - $t('pageLocalUserManagement.modal.passwordsDoNotMatch') - }} + {{ $t('pageUserManagement.modal.passwordsDoNotMatch') }} </template> </b-form-invalid-feedback> </input-password-toggle> @@ -208,20 +199,20 @@ <template #modal-footer="{ cancel }"> <b-button variant="secondary" - data-test-id="localUserManagement-button-cancel" + data-test-id="userManagement-button-cancel" @click="cancel()" > {{ $t('global.action.cancel') }} </b-button> <b-button form="form-user" - data-test-id="localUserManagement-button-submit" + data-test-id="userManagement-button-submit" type="submit" variant="primary" @click="onOk" > <template v-if="newUser"> - {{ $t('pageLocalUserManagement.addUser') }} + {{ $t('pageUserManagement.addUser') }} </template> <template v-else> {{ $t('global.action.save') }} @@ -275,13 +266,13 @@ export default { return this.user ? false : true; }, accountSettings() { - return this.$store.getters['localUsers/accountSettings']; + return this.$store.getters['userManagement/accountSettings']; }, manualUnlockPolicy() { return !this.accountSettings.accountLockoutDuration; }, privilegeTypes() { - return this.$store.getters['localUsers/accountRoles']; + return this.$store.getters['userManagement/accountRoles']; }, }, watch: { diff --git a/src/views/AccessControl/LocalUserManagement/TableRoles.vue b/src/views/SecurityAndAccess/UserManagement/TableRoles.vue index 3993af02..61ef1ee8 100644 --- a/src/views/AccessControl/LocalUserManagement/TableRoles.vue +++ b/src/views/SecurityAndAccess/UserManagement/TableRoles.vue @@ -35,7 +35,7 @@ export default { items: [ { description: this.$t( - 'pageLocalUserManagement.tableRoles.configureComponentsManagedByThisService' + 'pageUserManagement.tableRoles.configureComponentsManagedByThisService' ), administrator: true, operator: true, @@ -44,7 +44,7 @@ export default { }, { description: this.$t( - 'pageLocalUserManagement.tableRoles.configureManagerResources' + 'pageUserManagement.tableRoles.configureManagerResources' ), administrator: true, operator: false, @@ -53,7 +53,7 @@ export default { }, { description: this.$t( - 'pageLocalUserManagement.tableRoles.updatePasswordForCurrentUserAccount' + 'pageUserManagement.tableRoles.updatePasswordForCurrentUserAccount' ), administrator: true, operator: true, @@ -62,7 +62,7 @@ export default { }, { description: this.$t( - 'pageLocalUserManagement.tableRoles.configureUsersAndTheirAccounts' + 'pageUserManagement.tableRoles.configureUsersAndTheirAccounts' ), administrator: true, operator: false, @@ -71,7 +71,7 @@ export default { }, { description: this.$t( - 'pageLocalUserManagement.tableRoles.logInToTheServiceAndReadResources' + 'pageUserManagement.tableRoles.logInToTheServiceAndReadResources' ), administrator: true, operator: true, diff --git a/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue b/src/views/SecurityAndAccess/UserManagement/UserManagement.vue index fb5ba16e..015fee91 100644 --- a/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue +++ b/src/views/SecurityAndAccess/UserManagement/UserManagement.vue @@ -5,15 +5,15 @@ <b-col xl="9" class="text-right"> <b-button variant="link" @click="initModalSettings"> <icon-settings /> - {{ $t('pageLocalUserManagement.accountPolicySettings') }} + {{ $t('pageUserManagement.accountPolicySettings') }} </b-button> <b-button variant="primary" - data-test-id="localUserManagement-button-addUser" + data-test-id="userManagement-button-addUser" @click="initModalUser(null)" > <icon-add /> - {{ $t('pageLocalUserManagement.addUser') }} + {{ $t('pageUserManagement.addUser') }} </b-button> </b-col> </b-row> @@ -42,7 +42,7 @@ <template #head(checkbox)> <b-form-checkbox v-model="tableHeaderCheckboxModel" - data-test-id="localUserManagement-checkbox-tableHeaderCheckbox" + data-test-id="userManagement-checkbox-tableHeaderCheckbox" :indeterminate="tableHeaderCheckboxIndeterminate" @change="onChangeHeaderCheckbox($refs.table)" > @@ -52,7 +52,7 @@ <template #cell(checkbox)="row"> <b-form-checkbox v-model="row.rowSelected" - data-test-id="localUserManagement-checkbox-toggleSelectRow" + data-test-id="userManagement-checkbox-toggleSelectRow" @change="toggleSelectRow($refs.table, row.index)" > <span class="sr-only">{{ $t('global.table.selectItem') }}</span> @@ -72,11 +72,11 @@ <template #icon> <icon-edit v-if="action.value === 'edit'" - :data-test-id="`localUserManagement-tableRowAction-edit-${index}`" + :data-test-id="`userManagement-tableRowAction-edit-${index}`" /> <icon-trashcan v-if="action.value === 'delete'" - :data-test-id="`localUserManagement-tableRowAction-delete-${index}`" + :data-test-id="`userManagement-tableRowAction-delete-${index}`" /> </template> </table-row-action> @@ -88,12 +88,12 @@ <b-col xl="8"> <b-button v-b-toggle.collapse-role-table - data-test-id="localUserManagement-button-viewPrivilegeRoleDescriptions" + data-test-id="userManagement-button-viewPrivilegeRoleDescriptions" variant="link" class="mt-3" > <icon-chevron /> - {{ $t('pageLocalUserManagement.viewPrivilegeRoleDescriptions') }} + {{ $t('pageUserManagement.viewPrivilegeRoleDescriptions') }} </b-button> <b-collapse id="collapse-role-table" class="mt-3"> <table-roles /> @@ -134,7 +134,7 @@ import BVToastMixin from '@/components/Mixins/BVToastMixin'; import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin'; export default { - name: 'LocalUsers', + name: 'UserManagement', components: { IconAdd, IconChevron, @@ -162,15 +162,15 @@ export default { }, { key: 'username', - label: this.$t('pageLocalUserManagement.table.username'), + label: this.$t('pageUserManagement.table.username'), }, { key: 'privilege', - label: this.$t('pageLocalUserManagement.table.privilege'), + label: this.$t('pageUserManagement.table.privilege'), }, { key: 'status', - label: this.$t('pageLocalUserManagement.table.status'), + label: this.$t('pageUserManagement.table.status'), }, { key: 'actions', @@ -199,7 +199,7 @@ export default { }, computed: { allUsers() { - return this.$store.getters['localUsers/allUsers']; + return this.$store.getters['userManagement/allUsers']; }, tableItems() { // transform user data to table data @@ -216,12 +216,12 @@ export default { { value: 'edit', enabled: true, - title: this.$t('pageLocalUserManagement.editUser'), + title: this.$t('pageUserManagement.editUser'), }, { value: 'delete', enabled: user.UserName === 'root' ? false : true, - title: this.$tc('pageLocalUserManagement.deleteUser'), + title: this.$tc('pageUserManagement.deleteUser'), }, ], ...user, @@ -229,17 +229,19 @@ export default { }); }, settings() { - return this.$store.getters['localUsers/accountSettings']; + return this.$store.getters['userManagement/accountSettings']; }, passwordRequirements() { - return this.$store.getters['localUsers/accountPasswordRequirements']; + return this.$store.getters['userManagement/accountPasswordRequirements']; }, }, created() { this.startLoader(); - this.$store.dispatch('localUsers/getUsers').finally(() => this.endLoader()); - this.$store.dispatch('localUsers/getAccountSettings'); - this.$store.dispatch('localUsers/getAccountRoles'); + this.$store + .dispatch('userManagement/getUsers') + .finally(() => this.endLoader()); + this.$store.dispatch('userManagement/getAccountSettings'); + this.$store.dispatch('userManagement/getAccountRoles'); }, methods: { initModalUser(user) { @@ -249,12 +251,12 @@ export default { initModalDelete(user) { this.$bvModal .msgBoxConfirm( - this.$t('pageLocalUserManagement.modal.deleteConfirmMessage', { + this.$t('pageUserManagement.modal.deleteConfirmMessage', { user: user.username, }), { - title: this.$tc('pageLocalUserManagement.deleteUser'), - okTitle: this.$tc('pageLocalUserManagement.deleteUser'), + title: this.$tc('pageUserManagement.deleteUser'), + okTitle: this.$tc('pageUserManagement.deleteUser'), cancelTitle: this.$t('global.action.cancel'), } ) @@ -271,13 +273,13 @@ export default { this.startLoader(); if (isNewUser) { this.$store - .dispatch('localUsers/createUser', userData) + .dispatch('userManagement/createUser', userData) .then((success) => this.successToast(success)) .catch(({ message }) => this.errorToast(message)) .finally(() => this.endLoader()); } else { this.$store - .dispatch('localUsers/updateUser', userData) + .dispatch('userManagement/updateUser', userData) .then((success) => this.successToast(success)) .catch(({ message }) => this.errorToast(message)) .finally(() => this.endLoader()); @@ -286,7 +288,7 @@ export default { deleteUser({ username }) { this.startLoader(); this.$store - .dispatch('localUsers/deleteUser', username) + .dispatch('userManagement/deleteUser', username) .then((success) => this.successToast(success)) .catch(({ message }) => this.errorToast(message)) .finally(() => this.endLoader()); @@ -297,16 +299,16 @@ export default { this.$bvModal .msgBoxConfirm( this.$tc( - 'pageLocalUserManagement.modal.batchDeleteConfirmMessage', + 'pageUserManagement.modal.batchDeleteConfirmMessage', this.selectedRows.length ), { title: this.$tc( - 'pageLocalUserManagement.deleteUser', + 'pageUserManagement.deleteUser', this.selectedRows.length ), okTitle: this.$tc( - 'pageLocalUserManagement.deleteUser', + 'pageUserManagement.deleteUser', this.selectedRows.length ), cancelTitle: this.$t('global.action.cancel'), @@ -316,7 +318,7 @@ export default { if (deleteConfirmed) { this.startLoader(); this.$store - .dispatch('localUsers/deleteUsers', this.selectedRows) + .dispatch('userManagement/deleteUsers', this.selectedRows) .then((messages) => { messages.forEach(({ type, message }) => { if (type === 'success') this.successToast(message); @@ -330,7 +332,7 @@ export default { case 'enable': this.startLoader(); this.$store - .dispatch('localUsers/enableUsers', this.selectedRows) + .dispatch('userManagement/enableUsers', this.selectedRows) .then((messages) => { messages.forEach(({ type, message }) => { if (type === 'success') this.successToast(message); @@ -342,7 +344,7 @@ export default { case 'disable': this.startLoader(); this.$store - .dispatch('localUsers/disableUsers', this.selectedRows) + .dispatch('userManagement/disableUsers', this.selectedRows) .then((messages) => { messages.forEach(({ type, message }) => { if (type === 'success') this.successToast(message); @@ -368,7 +370,7 @@ export default { saveAccountSettings(settings) { this.startLoader(); this.$store - .dispatch('localUsers/saveAccountSettings', settings) + .dispatch('userManagement/saveAccountSettings', settings) .then((message) => this.successToast(message)) .catch(({ message }) => this.errorToast(message)) .finally(() => this.endLoader()); diff --git a/src/views/SecurityAndAccess/UserManagement/index.js b/src/views/SecurityAndAccess/UserManagement/index.js new file mode 100644 index 00000000..c3aebec3 --- /dev/null +++ b/src/views/SecurityAndAccess/UserManagement/index.js @@ -0,0 +1,2 @@ +import UserManagement from './UserManagement.vue'; +export default UserManagement; diff --git a/src/views/Settings/SecuritySettings/index.js b/src/views/Settings/SecuritySettings/index.js deleted file mode 100644 index 5ec2b615..00000000 --- a/src/views/Settings/SecuritySettings/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import SecuritySettings from './SecuritySettings.vue'; -export default SecuritySettings; diff --git a/tests/unit/__snapshots__/AppNavigation.spec.js.snap b/tests/unit/__snapshots__/AppNavigation.spec.js.snap index d8cf57fc..d87d44ed 100644 --- a/tests/unit/__snapshots__/AppNavigation.spec.js.snap +++ b/tests/unit/__snapshots__/AppNavigation.spec.js.snap @@ -462,15 +462,6 @@ exports[`AppNavigation.vue should render correctly 1`] = ` appNavigation.powerRestorePolicy </a> - <a - class="nav-link" - data-test-id="nav-item-security-settings" - href="#/settings/security-settings" - > - - appNavigation.securitySettings - - </a> </li> </ul> </transition-stub> @@ -479,10 +470,10 @@ exports[`AppNavigation.vue should render correctly 1`] = ` class="nav-item" > <button - aria-controls="access-control" + aria-controls="security-and-access" aria-expanded="false" class="btn btn-link collapsed" - data-test-id="nav-button-access-control" + data-test-id="nav-button-security-and-access" type="button" > <svg @@ -496,16 +487,14 @@ exports[`AppNavigation.vue should render correctly 1`] = ` xmlns="http://www.w3.org/2000/svg" > <path - d="M21,2a8.9977,8.9977,0,0,0-8.6119,11.6118L2,24v6H8L18.3881,19.6118A9,9,0,1,0,21,2Zm0,16a7.0125,7.0125,0,0,1-2.0322-.3022L17.821,17.35l-.8472.8472-3.1811,3.1812L12.4141,20,11,21.4141l1.3787,1.3786-1.5859,1.586L9.4141,23,8,24.4141l1.3787,1.3786L7.1716,28H4V24.8284l9.8023-9.8023.8472-.8474-.3473-1.1467A7,7,0,1,1,21,18Z" + d="M14 16.59L11.41 14 10 15.41 14 19.41 22 11.41 20.59 10 14 16.59z" /> - <circle - cx="22" - cy="10" - r="2" + <path + d="M16,30,9.8242,26.7071A10.9818,10.9818,0,0,1,4,17V4A2.0021,2.0021,0,0,1,6,2H26a2.0021,2.0021,0,0,1,2,2V17a10.9818,10.9818,0,0,1-5.8242,9.7071ZM6,4V17a8.9852,8.9852,0,0,0,4.7656,7.9423L16,27.7333l5.2344-2.791A8.9852,8.9852,0,0,0,26,17V4Z" /> </svg> - appNavigation.accessControl + appNavigation.securityAndAccess <svg aria-hidden="true" @@ -536,7 +525,7 @@ exports[`AppNavigation.vue should render correctly 1`] = ` > <ul class="collapse" - id="access-control" + id="security-and-access" style="display: none;" > <li @@ -544,17 +533,17 @@ exports[`AppNavigation.vue should render correctly 1`] = ` > <a class="nav-link" - data-test-id="nav-item-client-sessions" - href="#/access-control/client-sessions" + data-test-id="nav-item-sessions" + href="#/security-and-access/sessions" > - appNavigation.clientSessions + appNavigation.sessions </a> <a class="nav-link" data-test-id="nav-item-ldap" - href="#/access-control/ldap" + href="#/security-and-access/ldap" > appNavigation.ldap @@ -562,20 +551,29 @@ exports[`AppNavigation.vue should render correctly 1`] = ` </a> <a class="nav-link" - data-test-id="nav-item-local-user-management" - href="#/access-control/local-user-management" + data-test-id="nav-item-user-management" + href="#/security-and-access/user-management" + > + + appNavigation.userManagement + + </a> + <a + class="nav-link" + data-test-id="nav-item-policies" + href="#/security-and-access/policies" > - appNavigation.localUserManagement + appNavigation.policies </a> <a class="nav-link" - data-test-id="nav-item-ssl-certificates" - href="#/access-control/ssl-certificates" + data-test-id="nav-item-certificates" + href="#/security-and-access/certificates" > - appNavigation.sslCertificates + appNavigation.certificates </a> </li> @@ -1056,15 +1054,6 @@ exports[`AppNavigation.vue should render with nav-container open 1`] = ` appNavigation.powerRestorePolicy </a> - <a - class="nav-link" - data-test-id="nav-item-security-settings" - href="#/settings/security-settings" - > - - appNavigation.securitySettings - - </a> </li> </ul> </transition-stub> @@ -1073,10 +1062,10 @@ exports[`AppNavigation.vue should render with nav-container open 1`] = ` class="nav-item" > <button - aria-controls="access-control" + aria-controls="security-and-access" aria-expanded="false" class="btn btn-link collapsed" - data-test-id="nav-button-access-control" + data-test-id="nav-button-security-and-access" type="button" > <svg @@ -1090,16 +1079,14 @@ exports[`AppNavigation.vue should render with nav-container open 1`] = ` xmlns="http://www.w3.org/2000/svg" > <path - d="M21,2a8.9977,8.9977,0,0,0-8.6119,11.6118L2,24v6H8L18.3881,19.6118A9,9,0,1,0,21,2Zm0,16a7.0125,7.0125,0,0,1-2.0322-.3022L17.821,17.35l-.8472.8472-3.1811,3.1812L12.4141,20,11,21.4141l1.3787,1.3786-1.5859,1.586L9.4141,23,8,24.4141l1.3787,1.3786L7.1716,28H4V24.8284l9.8023-9.8023.8472-.8474-.3473-1.1467A7,7,0,1,1,21,18Z" + d="M14 16.59L11.41 14 10 15.41 14 19.41 22 11.41 20.59 10 14 16.59z" /> - <circle - cx="22" - cy="10" - r="2" + <path + d="M16,30,9.8242,26.7071A10.9818,10.9818,0,0,1,4,17V4A2.0021,2.0021,0,0,1,6,2H26a2.0021,2.0021,0,0,1,2,2V17a10.9818,10.9818,0,0,1-5.8242,9.7071ZM6,4V17a8.9852,8.9852,0,0,0,4.7656,7.9423L16,27.7333l5.2344-2.791A8.9852,8.9852,0,0,0,26,17V4Z" /> </svg> - appNavigation.accessControl + appNavigation.securityAndAccess <svg aria-hidden="true" @@ -1130,7 +1117,7 @@ exports[`AppNavigation.vue should render with nav-container open 1`] = ` > <ul class="collapse" - id="access-control" + id="security-and-access" style="display: none;" > <li @@ -1138,17 +1125,17 @@ exports[`AppNavigation.vue should render with nav-container open 1`] = ` > <a class="nav-link" - data-test-id="nav-item-client-sessions" - href="#/access-control/client-sessions" + data-test-id="nav-item-sessions" + href="#/security-and-access/sessions" > - appNavigation.clientSessions + appNavigation.sessions </a> <a class="nav-link" data-test-id="nav-item-ldap" - href="#/access-control/ldap" + href="#/security-and-access/ldap" > appNavigation.ldap @@ -1156,20 +1143,29 @@ exports[`AppNavigation.vue should render with nav-container open 1`] = ` </a> <a class="nav-link" - data-test-id="nav-item-local-user-management" - href="#/access-control/local-user-management" + data-test-id="nav-item-user-management" + href="#/security-and-access/user-management" + > + + appNavigation.userManagement + + </a> + <a + class="nav-link" + data-test-id="nav-item-policies" + href="#/security-and-access/policies" > - appNavigation.localUserManagement + appNavigation.policies </a> <a class="nav-link" - data-test-id="nav-item-ssl-certificates" - href="#/access-control/ssl-certificates" + data-test-id="nav-item-certificates" + href="#/security-and-access/certificates" > - appNavigation.sslCertificates + appNavigation.certificates </a> </li> |