20 Registro Tradicional de Peciente y Asignación de Roles en el Sistema de Odontología Clinica

Duración: 14 min
Módulo: Autenticación Social & Registro de Pacientes Lección 4 de 4

Descripció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

TipoComando / RutaDescripción
🌐 Ruta HTTPGET /registerRenderiza la vista del formulario de registro de usuario en Tabler UI.
🌐 Ruta HTTPPOST /registerProcesa las credenciales, valida los campos, genera la cuenta y asigna el rol de paciente.
💻 Ruta de Archivoresources/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

  1. 🔐 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.
  2. 👁️ 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.
  3. 📦 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.
  4. 🛡️ 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.