diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/locales/en-US.json | 1 | ||||
-rw-r--r-- | src/locales/ru-RU.json | 1 | ||||
-rw-r--r-- | src/store/modules/SecurityAndAccess/UserManagementStore.js | 21 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/UserManagement/ModalUser.vue | 4 | ||||
-rw-r--r-- | src/views/SecurityAndAccess/UserManagement/UserManagement.vue | 16 |
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'); |