99 ¿Qué falta para terminar el sistema de reserva de citas medicas? con LARAVEL(PHP-MySql) FullStack

Duración: 6 min
Módulo: 🗓️ Reserva de Citas y FullCalendar Lección 14 de 14

Descripción

🛡️ Detección de Rol y Seguridad del Dashboard del Doctor

Esta lección culmina la configuración de la vista principal del Doctor asegurando que solo los usuarios que están asociados al modelo Doctor puedan acceder a su dashboard de citas. Este paso fue crucial para resolver un error que impedía a los usuarios normales (pacientes) ingresar al sistema.

🚨 Problema Resuelto: Acceso No Autorizado

El error surgía cuando un usuario que no era doctor intentaba acceder a la ruta /admin [00:33]. La vista del dashboard intentaba ejecutar código específico del doctor, como Auth::user()->doctor->id, lo cual fallaba para un paciente porque la relación doctor no existe en su objeto de usuario.

✅ Solución: Validación de Relación en Blade

Para solucionar la vulnerabilidad y el error, se utilizó una validación condicional estricta en la vista principal (admin/index.blade.php) para filtrar la ejecución del código del doctor.

La lógica verifica si el usuario autenticado tiene una relación activa con el modelo Doctor. Si la relación se encuentra, significa que el usuario tiene el rol de médico, y el código se ejecuta.

Sintaxis de la Validación [03:23]

El bloque de código que genera la tabla de reservas para el médico se encerró en la siguiente condición Blade:

Blade

@if (Auth::user()->check() && Auth::user()->doctor)    {{-- Aquí se muestra la tabla de citas filtradas por doctor --}} @endif

  • Auth::user()->check(): Confirma que el usuario esté autenticado.
  • Auth::user()->doctor: Verifica la existencia de la relación con el modelo Doctor. Si existe, devuelve el objeto del doctor (es verdadero); si no existe, devuelve null (es falso).

Al implementar esta condición, el error se elimina, y el Doctor ve su dashboard de reservas de forma exclusiva [03:41].

⏭️ Conclusión del Módulo y Próximos Pasos

Con la seguridad del acceso de roles ya establecida, el módulo de reserva de citas se considera funcionalmente completo en sus aspectos principales.

El curso continuará enfocándose en la finalización del sistema con los dos módulos restantes:

  • ⚙️ Configuración: Para definir y gestionar opciones globales del sistema [04:18].
  • 📊 Reportes: Para generar reportes profesionales de las citas en formato PDF [04:47].