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 @@ ...@@ -29,7 +29,6 @@
<div class="col-12"> <div class="col-12">
<p class="mb-1 text-muted"><strong>Email</strong></p> <p class="mb-1 text-muted"><strong>Email</strong></p>
<p class="fw-bold">{{ userStore.user?.email }}</p> <p class="fw-bold">{{ userStore.user?.email }}</p>
<!-- <input v-else type="email" class="form-control" v-model="editableUser.email"> -->
</div> </div>
<div class="col-12"> <div class="col-12">
<p class="mb-1 text-muted"><strong>Rol</strong></p> <p class="mb-1 text-muted"><strong>Rol</strong></p>
...@@ -75,8 +74,10 @@ ...@@ -75,8 +74,10 @@
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" @click="resetPasswordVariables"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" @click="resetPasswordVariables"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div v-if="passwordError" class="alert alert-danger" role="alert"> <div v-if="passwordErrors.length > 0" class="alert alert-danger" role="alert">
{{ passwordError }} <ul>
<li v-for="msg in passwordErrors" :key="msg">{{ msg }}</li>
</ul>
</div> </div>
<div class="mb-3 position-relative"> <div class="mb-3 position-relative">
...@@ -136,7 +137,7 @@ const errorMsg = ref(null); ...@@ -136,7 +137,7 @@ const errorMsg = ref(null);
const oldPassword = ref(''); const oldPassword = ref('');
const newPassword = ref(''); const newPassword = ref('');
const confirmPassword = ref(''); const confirmPassword = ref('');
const passwordError = ref(''); const passwordErrors = ref([]);
// Variables para la visibilidad de las contraseñas // Variables para la visibilidad de las contraseñas
const oldPasswordVisible = ref(false); const oldPasswordVisible = ref(false);
...@@ -198,11 +199,11 @@ const cancelEdit = () => { ...@@ -198,11 +199,11 @@ const cancelEdit = () => {
// Función para el cambio de contraseña // Función para el cambio de contraseña
const handlePasswordChange = async () => { const handlePasswordChange = async () => {
passwordError.value = ''; passwordErrors.value = [];
// Si las contraseñas no coinciden // Si las contraseñas no coinciden
if (newPassword.value !== confirmPassword.value) { if (newPassword.value !== confirmPassword.value) {
passwordError.value = 'Las contraseñas no coinciden.'; passwordErrors.value = ['Las contraseñas no coinciden.'];
return; return;
} }
...@@ -219,9 +220,12 @@ const handlePasswordChange = async () => { ...@@ -219,9 +220,12 @@ const handlePasswordChange = async () => {
} catch (error) { } catch (error) {
// Manejo de errores específicos del backend // Manejo de errores específicos del backend
if (error.response && error.response.status == 409) { 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 { } 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 = () => { ...@@ -247,7 +251,7 @@ const resetPasswordVariables = () => {
oldPassword.value = ''; oldPassword.value = '';
newPassword.value = ''; newPassword.value = '';
confirmPassword.value = ''; confirmPassword.value = '';
passwordError.value = ''; passwordErrors.value = [];
oldPasswordVisible.value = false; oldPasswordVisible.value = false;
newPasswordVisible.value = false; newPasswordVisible.value = false;
confirmPasswordVisible.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