20 Registro Tradicional de Peciente y Asignación de Roles en el Sistema de Odontología Clinica
Duración: 14 minDescripción
🎓 Lección #20: Registro Tradicional de Pacientes, Asignación de Roles y Personalización de Interfaz en Laravel
Objetivo General: Implementar el flujo de registro manual/tradicional manteniendo la coherencia de datos del paciente y la asignación automática del rol Spatie, además de personalizar componentes clave de la cabecera e interfaz gráfica en el Dashboard de Tabler UI.
🚀 Pasos Clave con Timestamps
- ⏱️ 00:00 📌 Introducción y Contexto del Registro Tradicional: Comparativa entre el flujo rápido mediante proveedores OAuth (Socialite) y el registro manual con credenciales estándar.
- ⏱️ 02:30 ⚙️ Lógica en el Controlador de Registro (RegisterController): Adaptación del método store para registrar el usuario, vincular sus datos básicos en la tabla pacientes y asignar automáticamente el rol paciente mediante Spatie.
- ⏱️ 03:26 🧪 Prueba del Registro Tradicional: Demostración en vivo registrando una nueva cuenta con correo y contraseña, verificando la creación simultánea en la tabla users, pacientes y model_has_roles.
- ⏱️ 05:43 🎨 Personalización del Logotipo del Sistema: Reemplazo del logotipo por defecto en las vistas parciales de Tabler UI (vendor/tabler/partials/logo.blade.php) utilizando recursos locales con asset().
- ⏱️ 09:46 👤 Visualización Dinámica del Rol del Usuario: Renderizado dinámico del rol activo del usuario autenticado en la barra superior (header.blade.php) mediante la función pluck('name') de Eloquent.
- ⏱️ 12:00 🧹 Limpieza del Menú Desplegable de Usuario: Eliminación de opciones innecesarias y traducción del botón de cierre de sesión (Logout -> Cerrar sesión).
🛠️ Comandos y Rutas Principales
| Tipo | Comando / Ruta | Descripción |
|---|---|---|
| 🌐 Ruta HTTP | GET /register | Renderiza la vista del formulario de registro de usuario en Tabler UI. |
| 🌐 Ruta HTTP | POST /register | Procesa las credenciales, valida los campos, genera la cuenta y asigna el rol de paciente. |
| 💻 Ruta de Archivo | resources/views/vendor/tabler/partials/ | Ubicación de las vistas parciales (logo.blade.php, header.blade.php) modificadas para la personalización de la interfaz. |
🔒 Buenas Prácticas y Seguridad
- 🔐 Consistencia en la Lógica de Autenticación: Independientemente del método de entrada (OAuth o formulario manual), asegurar que ambas vías ejecuten los mismos eventos de creación de perfil y asignación de roles.
- 👁️ Limpieza y Contextualización de la Interfaz: Exponer únicamente los elementos de navegación y opciones del perfil que correspondan al rol actual del usuario para prevenir confusiones de UX.
- 📦 Sobrescritura Segura de Vistas de Paquetes: Mantener las personalizaciones de diseño dentro de los archivos publicados en resources/views/vendor/ sin alterar el núcleo original de los paquetes instalados.
- 🛡️ Protección de Formularios: Mantener la validación obligatoria de coincidencia de contraseñas (password confirmation) y protección contra ataques CSRF (@csrf) en todos los formularios de registro.