perf(UserDetail): mejora en la validación en el formulario de cambio de contraseña

parent d17cec22
Showing with 13 additions and 9 deletions
......@@ -29,7 +29,6 @@
<div class="col-12">
<p class="mb-1 text-muted"><strong>Email</strong></p>
<p class="fw-bold">{{ userStore.user?.email }}</p>
<!-- <input v-else type="email" class="form-control" v-model="editableUser.email"> -->
</div>
<div class="col-12">
<p class="mb-1 text-muted"><strong>Rol</strong></p>
......@@ -75,8 +74,10 @@
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" @click="resetPasswordVariables"></button>
</div>
<div class="modal-body">
<div v-if="passwordError" class="alert alert-danger" role="alert">
{{ passwordError }}
<div v-if="passwordErrors.length > 0" class="alert alert-danger" role="alert">
<ul>
<li v-for="msg in passwordErrors" :key="msg">{{ msg }}</li>
</ul>
</div>
<div class="mb-3 position-relative">
......@@ -136,7 +137,7 @@ const errorMsg = ref(null);
const oldPassword = ref('');
const newPassword = ref('');
const confirmPassword = ref('');
const passwordError = ref('');
const passwordErrors = ref([]);
// Variables para la visibilidad de las contraseñas
const oldPasswordVisible = ref(false);
......@@ -198,11 +199,11 @@ const cancelEdit = () => {
// Función para el cambio de contraseña
const handlePasswordChange = async () => {
passwordError.value = '';
passwordErrors.value = [];
// Si las contraseñas no coinciden
if (newPassword.value !== confirmPassword.value) {
passwordError.value = 'Las contraseñas no coinciden.';
passwordErrors.value = ['Las contraseñas no coinciden.'];
return;
}
......@@ -219,9 +220,12 @@ const handlePasswordChange = async () => {
} catch (error) {
// Manejo de errores específicos del backend
if (error.response && error.response.status == 409) {
passwordError.value = 'La contraseña actual es incorrecta.';
passwordErrors.value = ['La contraseña actual es incorrecta.'];
} else if (error.response && error.response.data && error.response.data.errorMsg) {
// Divide la cadena de mensajes y la asigna al array
passwordErrors.value = error.response.data.errorMsg.split('; ');
} else {
passwordError.value = 'Ocurrió un error al cambiar la contraseña. Por favor, inténtelo de nuevo.';
passwordErrors.value = ['Ocurrió un error al cambiar la contraseña. Por favor, inténtelo de nuevo.'];
}
}
......@@ -247,7 +251,7 @@ const resetPasswordVariables = () => {
oldPassword.value = '';
newPassword.value = '';
confirmPassword.value = '';
passwordError.value = '';
passwordErrors.value = [];
oldPasswordVisible.value = false;
newPasswordVisible.value = false;
confirmPasswordVisible.value = false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment