73 Create Roles en el Sistema de Reserva de Citas Medicas con LARAVEL(PHP-MySql) FullStack

Duración: 9 min
Módulo: 🔑 Seguridad, Roles y Permisos Lección 3 de 15

Descripción

🛡️👤 Lección 73: Creación de Roles Base con Spatie para la Reserva de Citas

Esta lección se centra en el paso práctico de utilizar el paquete Spatie Laravel Permission para definir los roles esenciales del sistema, asegurando que cada usuario (incluidos los pacientes de registro público) tenga un nivel de acceso bien definido.

1. Preparación del Modelo de Usuario

Para que el sistema de roles funcione, el modelo User debe ser modificado para integrar las funcionalidades de Spatie [01:33].

  • Integración del Trait: Se deben añadir dos líneas cruciales al modelo User.php:
    • Se importa la clase Spatie\Permission\Traits\HasRoles [02:23].
    • Se utiliza el trait HasRoles dentro de la clase User para otorgarle capacidades de gestión de roles y permisos [02:41].

2. Definición y Siembra (Seeding) de los Roles

Para poblar la tabla roles de la base de datos con los perfiles necesarios, se utiliza un Seeder de Laravel.

  • Roles Clave: Se definen los cinco roles principales que tendrá el sistema [05:37]:
    1. admin (Acceso total)
    2. secretaria (Gestión de usuarios y citas)
    3. doctor (Visualización de sus citas y horarios)
    4. paciente (Reservar citas, ver historial)
    5. usuario (Usuario que hace una reserva por primera vez, que luego podría convertirse en paciente)
  • Creación de Roles en el Seeder: Se utiliza la sintaxis del paquete Spatie para crear estos roles mediante el modelo Role y su método create dentro del seeder [04:43].
  • Ejecución de Migraciones: Al ejecutar el comando php artisan migrate:fresh --seed, se garantiza que la tabla roles se llene con los perfiles definidos [07:34].

3. Resultado y Próximo Paso

La ejecución del seeder confirma que la base de datos ahora contiene los cinco roles listos para ser asignados a los usuarios [08:23].

  • Funcionalidad Lograda: La tabla roles ya almacena los nombres admin, secretaria, doctor, paciente y usuario.
  • Próxima Lección: El siguiente paso será asignar rutas específicas a cada rol utilizando middlewares para controlar qué usuarios tienen acceso a las distintas partes del sistema [08:55].