Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 55 additions & 4 deletions harvester-app/src/framework/utils/js/moduloGestionUsuario.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ let paginaActual = 1;
let listaUsuarios = [];
let usuariosFiltrados = [];
let terminoBusqueda = '';
let listaCorreos = [];

/**
* Inicializa el módulo de gestión de usuarios.
Expand All @@ -35,8 +36,6 @@ async function inicializarModuloGestionUsuarios() {
listaUsuarios = usuarios?.obtenerUsuarios() ?? [];
usuariosFiltrados = [...listaUsuarios];
cargarPagina(1);

// Cargar roles

} catch (error) {
console.error('Error al obtener usuarios:', error);
Expand All @@ -52,6 +51,7 @@ async function inicializarModuloGestionUsuarios() {
evento.preventDefault();
columnaCrear.style.display = 'block';
cargarRoles(); // Cargar roles al abrir el formulario
listaCorreos = listaUsuarios.map(usuario => usuario.correo); // Guardar todos los correos en la variable global
});

const botonCancelar = document.querySelector('.btn-cancelar');
Expand All @@ -69,7 +69,13 @@ async function inicializarModuloGestionUsuarios() {
botonGuardar.parentNode.replaceChild(nuevoBotonGuardar, botonGuardar);
nuevoBotonGuardar.addEventListener('click', async evento => {
evento.preventDefault();
// Deshabilitar el botón para evitar múltiples envíos
nuevoBotonGuardar.disabled = true;
await crearUsuario();
// Volver a habilitar el botón después de que termine el proceso
nuevoBotonGuardar.disabled = false;


});

// Configurar el campo de búsqueda
Expand Down Expand Up @@ -309,7 +315,6 @@ async function crearUsuario() {
const contrasenia = contraseniaInput.value.trim();
const idRolFK = parseInt(rolInput.value, 10);


if (!nombre || !correo || !contrasenia || isNaN(idRolFK)) {
return Swal2.fire({
title: 'Datos incompletos',
Expand All @@ -318,9 +323,55 @@ async function crearUsuario() {
});
}

if (listaCorreos.some(correoExistente => correoExistente && correoExistente.toLowerCase() === correo.toLowerCase())) {
await Swal2.fire({
title: 'Correo ya registrado',
text: 'El correo ingresado ya existe. Por favor, usa otro correo.',
icon: 'error',
});
return;
}

if (nombre.length > 55) {
await Swal2.fire({
title: 'Nombre demasiado largo',
text: 'El nombre no puede tener más de 55 caracteres.',
icon: 'error',
});
return;
}

if (correo.length > 55) {
await Swal2.fire({
title: 'Correo demasiado largo',
text: 'El correo no puede tener más de 55 caracteres.',
icon: 'error',
});
return

}

if (contrasenia.length < 5) {
await Swal2.fire({
title: 'Contraseña demasiado corta',
text: 'La contraseña debe de tener más de 5 caracteres.',
icon: 'error',
});
return
}

if (contrasenia.length > 55) {
await Swal2.fire({
title: 'Contraseña demasiado larga',
text: 'La contraseña no puede tener más de 55 caracteres.',
icon: 'error',
});
return
}


try {
const resultado = await crearUsuarioCU({ nombre, correo, contrasenia, idRolFK });

if (resultado.ok) {
Swal2.fire({
title: 'Usuario creado',
Expand Down
Loading