summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSivaprabu Ganesan <sivaprabug@ami.com>2023-01-05 16:22:51 +0300
committerGunnar Mills <gmills@us.ibm.com>2023-02-08 00:43:29 +0300
commit2897447b94edf35002f985d4055a4699bb5333d9 (patch)
tree054d31e1b64c32da960ec62374ff0a4bd1ad15a5
parent9298ea3f3127cd9310238136f5712384c9b25117 (diff)
downloadwebui-vue-2897447b94edf35002f985d4055a4699bb5333d9.tar.xz
Enhanced User Management page error message
Description 1: When WebUI creates the user with an already existing username the error message will display the exact failure reason. Tested: Step 1: Login to webUI and navigate to user management page Step 2: Create new user with username "testUser1" Step 3: Create another user with same username "testUser1" Step 4: WEB UI will through the error message as "Username 'testuser1' already exists." Description 2: User can able to disable and change the root user via WebUI Now restricted to disable the root user and changing the root user privilege. Tested: Step 1: Login to Web UI with root user Step 2: Navigate to User management page Step 3: Try to modify the root user's details Step 4: WebUI won't allow to disable the user, username change and privilege change Step 5: Login Web UI with non-root user Step 6: Web UI won't allow to modify or delete the root user's details Change-Id: I0e38215b51fb058984664ec38ae9613e18043ed7 Signed-off-by: Sivaprabu Ganesan <sivaprabug@ami.com>
-rw-r--r--src/locales/en-US.json1
-rw-r--r--src/locales/ru-RU.json1
-rw-r--r--src/store/modules/SecurityAndAccess/UserManagementStore.js21
-rw-r--r--src/views/SecurityAndAccess/UserManagement/ModalUser.vue4
-rw-r--r--src/views/SecurityAndAccess/UserManagement/UserManagement.vue16
5 files changed, 38 insertions, 5 deletions
diff --git a/src/locales/en-US.json b/src/locales/en-US.json
index ffb6a2ea..0796c67a 100644
--- a/src/locales/en-US.json
+++ b/src/locales/en-US.json
@@ -581,6 +581,7 @@
"errorBatchDisable": "Error disabling %{count} user. | Error disabling %{count} users.",
"errorBatchEnable": "Error enabling %{count} user. | Error enabling %{count} users.",
"errorCreateUser": "Error creating user '%{username}'.",
+ "errorAlreadyExistUser": "Username '%{username}' already exists.",
"errorDeleteUser": "Error deleting user '%{username}'.",
"errorLoadAccountSettings": "Error loading account settings",
"errorLoadUsers": "Error loading users.",
diff --git a/src/locales/ru-RU.json b/src/locales/ru-RU.json
index 8993b82d..477cde74 100644
--- a/src/locales/ru-RU.json
+++ b/src/locales/ru-RU.json
@@ -581,6 +581,7 @@
"errorBatchDisable": "Ошибка отключения %{count} пользователя. | Ошибка отключения %{count} пользователей.",
"errorBatchEnable": "Ошибка включения %{count} пользователя. | Ошибка включения %{count} пользователей.",
"errorCreateUser": "Ошибка создания пользователя '%{username}'.",
+ "errorAlreadyExistUser": "имя пользователя '%{username}' уже существует.",
"errorDeleteUser": "Ошибка удаления пользователя '%{username}'.",
"errorLoadAccountSettings": "Ошибка загрузки настроек учётной записи",
"errorLoadUsers": "Ошибка загрузки учётных записей пользователей.",
diff --git a/src/store/modules/SecurityAndAccess/UserManagementStore.js b/src/store/modules/SecurityAndAccess/UserManagementStore.js
index 362f3f64..78dbd433 100644
--- a/src/store/modules/SecurityAndAccess/UserManagementStore.js
+++ b/src/store/modules/SecurityAndAccess/UserManagementStore.js
@@ -113,10 +113,27 @@ const UserManagementStore = {
})
)
.catch((error) => {
- console.log(error);
- const message = i18n.t('pageUserManagement.toast.errorCreateUser', {
+ let message = i18n.t('pageUserManagement.toast.errorCreateUser', {
username,
});
+ if (error.response && error.response.data) {
+ if (error.response.data['UserName@Message.ExtendedInfo']) {
+ let obj = error.response.data['UserName@Message.ExtendedInfo'];
+ for (var key in obj) {
+ if (obj[key].Message) {
+ let msg = obj[key].Message;
+ if (msg.indexOf('already exists') != -1) {
+ message = i18n.t(
+ 'pageUserManagement.toast.errorAlreadyExistUser',
+ {
+ username,
+ }
+ );
+ }
+ }
+ }
+ }
+ }
throw new Error(message);
});
},
diff --git a/src/views/SecurityAndAccess/UserManagement/ModalUser.vue b/src/views/SecurityAndAccess/UserManagement/ModalUser.vue
index 0f8757ce..5a1dc61a 100644
--- a/src/views/SecurityAndAccess/UserManagement/ModalUser.vue
+++ b/src/views/SecurityAndAccess/UserManagement/ModalUser.vue
@@ -56,6 +56,7 @@
name="user-status"
data-test-id="userManagement-radioButton-statusDisabled"
:value="false"
+ :disabled="!newUser && originalUsername === disabled"
@input="$v.form.status.$touch()"
>
{{ $t('global.status.disabled') }}
@@ -81,7 +82,7 @@
aria-describedby="username-help-block"
data-test-id="userManagement-input-username"
:state="getValidationState($v.form.username)"
- :disabled="!newUser && originalUsername === 'root'"
+ :disabled="!newUser && originalUsername === disabled"
@input="$v.form.username.$touch()"
/>
<b-form-invalid-feedback role="alert">
@@ -259,6 +260,7 @@ export default {
passwordConfirmation: '',
manualUnlock: false,
},
+ disabled: this.$store.getters['global/username'],
};
},
computed: {
diff --git a/src/views/SecurityAndAccess/UserManagement/UserManagement.vue b/src/views/SecurityAndAccess/UserManagement/UserManagement.vue
index c6c556c8..b17be86e 100644
--- a/src/views/SecurityAndAccess/UserManagement/UserManagement.vue
+++ b/src/views/SecurityAndAccess/UserManagement/UserManagement.vue
@@ -217,12 +217,17 @@ export default {
actions: [
{
value: 'edit',
- enabled: true,
+ enabled: this.editEnable(user),
title: this.$t('pageUserManagement.editUser'),
},
{
value: 'delete',
- enabled: user.UserName === 'root' ? false : true,
+ enabled:
+ user.UserName === this.$store.getters['global/username']
+ ? false
+ : true && user.UserName === 'root'
+ ? false
+ : true,
title: this.$tc('pageUserManagement.deleteUser'),
},
],
@@ -247,6 +252,13 @@ export default {
this.$store.dispatch('userManagement/getAccountRoles');
},
methods: {
+ editEnable(user) {
+ if ('root' === this.$store.getters['global/username']) {
+ return true;
+ } else {
+ return user.UserName === 'root' ? false : true;
+ }
+ },
initModalUser(user) {
this.activeUser = user;
this.$bvModal.show('modal-user');