From 1b1c1005905c0d5a0145377718ad773fe08d0863 Mon Sep 17 00:00:00 2001 From: Yoshie Muranaka Date: Thu, 20 Feb 2020 10:18:36 -0800 Subject: Add account settings to local user page Adds ability to change account LockoutThreshold and LockoutDuration properties from the GUI. Signed-off-by: Yoshie Muranaka Change-Id: Ieeb75aa83c07b3de840bccdfc28e2d6e87512e2e --- src/locales/en.json | 21 ++- .../AccessControl/LocalUserMangementStore.js | 27 +++ .../LocalUserManagement/LocalUserManagement.vue | 14 +- .../LocalUserManagement/ModalSettings.vue | 183 ++++++++++++++++++++- 4 files changed, 234 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/locales/en.json b/src/locales/en.json index dd3d588b..f392f4e8 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1,7 +1,9 @@ { "global": { "formField": { - "validator": "Field required" + "fieldRequired": "Field required", + "valueMustBeBetween": "Value must be between %{min} – %{max}", + "mustBeAtLeast": "Must be at least %{value}" }, "on": "on", "off": "off", @@ -13,6 +15,7 @@ "confirm": "Confirm", "cancel": "Cancel", "delete": "Delete", + "save": "Save", "selected": "Selected" }, "response": { @@ -49,11 +52,11 @@ }, "password": { "label": "Password", - "validator": "@:global.formField.validator" + "validator": "@:global.formField.fieldRequired" }, "username": { "label": "Username", - "validator": "@:global.formField.validator" + "validator": "@:global.formField.fieldRequired" } }, "overview": { @@ -103,6 +106,7 @@ } }, "localUserManagement": { + "accountPolicySettings": "Account policy settings", "tableActions": { "delete": "@:global.actions.delete", "enable": "Enable", @@ -114,7 +118,16 @@ "successEnableUsers": "Successfully enabled %{count} user. | Successfully enabled %{count} users.", "errorEnableUsers": "Error enabling %{count} user. | Error enabling %{count} users.", "successDisableUsers": "Successfully disabled %{count} user. | Successfully disabled %{count} users.", - "errorDisableUsers": "Error disabling %{count} user. | Error disabling %{count} users." + "errorDisableUsers": "Error disabling %{count} user. | Error disabling %{count} users.", + "successSaveSettings": "Successfully saved account settings.", + "errorSaveSettings": "Error saving account settings." + }, + "modals": { + "manual": "Manual", + "automaticAfterTimeout": "Automatic after timeout", + "timeoutDurationSeconds": "Timeout duration (seconds)", + "maxFailedLoginAttempts": "Max failed login attempts", + "userUnlockMethod": "User unlock method" } } } \ No newline at end of file diff --git a/src/store/modules/AccessControl/LocalUserMangementStore.js b/src/store/modules/AccessControl/LocalUserMangementStore.js index 67c3a1e4..7ad3ff50 100644 --- a/src/store/modules/AccessControl/LocalUserMangementStore.js +++ b/src/store/modules/AccessControl/LocalUserMangementStore.js @@ -257,6 +257,33 @@ const LocalUserManagementStore = { return toastMessages; }) ); + }, + async saveAccountSettings( + { dispatch }, + { lockoutThreshold, lockoutDuration } + ) { + const data = {}; + if (lockoutThreshold !== undefined) { + data.AccountLockoutThreshold = lockoutThreshold; + } + if (lockoutDuration !== undefined) { + data.AccountLockoutDuration = lockoutDuration; + } + + return await api + .patch('/redfish/v1/AccountService', data) + //GET new settings to update view + .then(() => dispatch('getAccountSettings')) + .then(() => + i18n.t('localUserManagement.toastMessages.successSaveSettings') + ) + .catch(error => { + console.log(error); + const message = i18n.t( + 'localUserManagement.toastMessages.errorSaveSettings' + ); + throw new Error(message); + }); } } }; diff --git a/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue b/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue index 97b00e49..ee2ec433 100644 --- a/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue +++ b/src/views/AccessControl/LocalUserManagement/LocalUserManagement.vue @@ -75,7 +75,7 @@ - + this.successToast(message)) + .catch(({ message }) => this.errorToast(message)); } } }; diff --git a/src/views/AccessControl/LocalUserManagement/ModalSettings.vue b/src/views/AccessControl/LocalUserManagement/ModalSettings.vue index afe2d95e..2e41b292 100644 --- a/src/views/AccessControl/LocalUserManagement/ModalSettings.vue +++ b/src/views/AccessControl/LocalUserManagement/ModalSettings.vue @@ -1,14 +1,195 @@ -- cgit v1.2.3