05 Módulo USUARIOS en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack parte 2
Duración: 59 min
Módulo: 🔑 Login, Roles y Usuarios
Lección 4 de
4
Descripción
Lección 05 Módulo USUARIOS (Parte 2): CRUD Completo y Profesionalización
Este video finaliza el Módulo de Usuarios, implementando las acciones de Visualización (Show), Edición (Update) y Eliminación (Delete), con un fuerte enfoque en la seguridad de contraseñas y la integridad referencial de los datos.
1. Acción Ver/Mostrar (Show) 👀
Se desarrolla la vista para mostrar de forma segura la información de un usuario específico.
- Consulta con JOIN: Se utiliza una consulta con INNER JOIN para obtener los datos del usuario junto con el nombre del rol al que pertenece, haciendo la información más legible [03:47].
- Seguridad de Contraseña: Se enfatiza que la contraseña no se debe mostrar en esta vista, ya que está cifrada (hashed) y no sirve de nada al administrador o al usuario ver el hash encriptado [08:13].
- Estado del Usuario: El valor numérico del campo estado (1 o 0) de la base de datos se traduce y se muestra condicionalmente en la vista como "Activo" o "Inactivo" [10:29].
- Datos Adicionales: Se muestra la Fecha y Hora de Creación y el Estado del registro [09:06].
2. Acción Editar/Actualizar (Update) ✍️
Se implementa la lógica más compleja del módulo para permitir la modificación de usuarios, con especial atención al manejo de la contraseña.
- Carga de Datos: El formulario de edición recibe y precarga todos los datos actuales del usuario seleccionado [13:29].
- Selección de Rol Dinámica: Se implementa una condición PHP dentro del loop de roles (<option>) para aplicar el atributo selected y asegurar que el rol actual del usuario se muestre seleccionado por defecto en el dropdown [16:16], [19:09].
- Actualización Condicional de Contraseña 🛡️:
- Lógica Principal: El controlador (update) primero pregunta si los campos de password están vacíos [22:36].
- Escenario 1 (No se cambia contraseña): Si la contraseña está vacía, se ejecuta una sentencia UPDATE que omite el campo password, manteniendo el hash anterior. [23:17]
- Escenario 2 (Se cambia contraseña): Si se introducen contraseñas, se realiza la validación de igualdad y, si son correctas, se encripta la nueva contraseña con password_hash() antes de ejecutar una sentencia UPDATE que incluye el nuevo hash [29:15], [30:07].
- Restricción de Email: Se mantiene la validación de unicidad para el campo Email, impidiendo que se actualice el usuario con un correo que ya existe en la base de datos [31:35].
3. Acción Eliminar (Delete) y Corrección de Integridad ❌
Se desarrolla la lógica de eliminación y se corrigen errores cruciales de seguridad y usabilidad en los módulos.
- Lógica de Eliminación de Usuario: Se crea el controlador delete que ejecuta la sentencia DELETE FROM usuarios WHERE ID_usuario = :id, con la alerta de confirmación previa (SweetAlert) [33:18].
- Corrección Crítica de ID: Se corrige un error que hacía que la función de eliminar tomara siempre el último registro. La solución fue pasar el ID único del registro a la función de JavaScript en el Index de ambos módulos (Roles y Usuarios) para asegurar que solo se elimina el elemento correcto [38:26], [44:37].
- Manejo de Integridad Referencial (Módulo Roles): Para evitar errores de violación de llave foránea al intentar borrar un rol con usuarios asociados, se implementa una verificación previa [39:56]:
- Se consulta la tabla usuarios para ver si existe algún registro con el ID_roll que se quiere eliminar.
- Si el contador es mayor a cero, se muestra un mensaje de error elegante: "Existe este rol en otra tabla, no se puede eliminar" [43:04].
- Si el contador es cero, el rol se elimina con normalidad.
4. Mejoras de Interfaz y Control de Versiones 📊
- Widgets en Dashboard: Se añaden tarjetas informativas (widgets) a la plantilla principal (Index) del administrador para mostrar estadísticas rápidas, incluyendo el total de Roles Registrados y el total de Usuarios Registrados [47:25].
- Commit a GitHub: Se realiza el tercer commit del proyecto, etiquetado como "se agregó el módulo usuarios", subiendo todas las funcionalidades desarrolladas al repositorio en GitHub [56:11].
Lecciones
📄 Introducción y Plataforma
🔑 Login, Roles y Usuarios
Lección 1. 02 Módulo ROLES en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack
155 min
Lección 3. 04 Módulo USUARIOS en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack
85 min
⚙️ Configuraciones Generales
🗓️ Gestiones Educativas y Niveles
📐 Grados y Materias
Lección 4. 15 MÓDULO MATERIAS en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack
16 min
Lección 5. 16 Crud materias en el curso de Sistema de gestión escolar con (PHP y MySql) FullStack
31 min
🗄️ Diseño de la Base de Datos
🏢 Módulo Personal Administrativo (CRUD Complejo)
👨🏫 Módulo Docentes
Lección 1. 23 Módulo docentes en el curso de Sistema de gestión escolar(PHP y MySql)FullStack
22 min
Lección 2. 24 Create docentes en el curso de Sistema de gestión escolar(PHP y MySql)FullStack
11 min
👨👩👧👦 Modelo Estudiantes y Padres
✏️ CRUD de Estudiantes
Lección 1. 30 Listado de estudiante en el curso de Sistema de gestión escolar(PHP y MySql)FullStack
15 min
Lección 3. 32 Update estudiantes en el curso de Sistema de gestión escolar(PHP y MySql)FullStack
39 min
💳 Pagos y Librería TCPDF
📄 CRUD de Pagos y Documentación
🔗 Asignación de Materias
🚀 Calificaciones (Lógica y Carga de Notas)
Lección 1. 45 Módulo de calificaciones en el curso Sistema de gestión escolar(PHP y MySql)FullStack
31 min
📋 Creación del Módulo Kardex
✏️ CRUD de Kardex
👁️ Vistas Específicas del Usuario
Lección 1. 58 Vista para el estudiante en el curso Sistema de Gestión escolar(PHP y MySql)FullStack
25 min
Lección 2. 59 Vista para el docente en el curso Sistema de Gestión escolar(PHP y MySql)FullStack
18 min
🛡️ Módulo de Permisos (Base)
🤝 Asignación de Permisos
🚦 Autorización de Vistas
Lección 5. 74 Autorizar cada vista o página del Sistema de Gestión Escolar(PHP y MySql)FullStack
17 min
📤 Importación Masiva y Gráficos
Lección 1. 76 Importar estudiantes por lote del Sistema de Gestión Escolar(PHP y MySql)FullStack
22 min
Lección 4. 79 Reporte de estudiantes por grados del Sistema de Gestión Escolar(PHP y MySql)FullStack
19 min
🏁 Ajustes Finales y Conclusión
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️