32 🔑 Permisos del Sistema | Sistema de Parqueo Laravel 12 FullStack
Duración: 16 minDescripción
32 🔑 Índice de Lección: Permisos del Sistema (Laravel 12 FullStack)
La lección 32 se centra en la implementación fundamental del módulo de Permisos utilizando la librería Spatie Laravel Permission. Este módulo es crucial para la seguridad y la restricción de acceso en el sistema, asegurando que cada rol solo pueda ejecutar las acciones para las que está autorizado.
1. Introducción a Roles y Permisos
Se contextualiza la necesidad de definir permisos específicos para cada rol, ya que actualmente roles como el Operador tienen acceso total al sistema, lo cual es inseguro.
- Librería Utilizada: Se recuerda el uso de Lara Spatie (Spatie Laravel Permission) y las tablas clave que maneja: roles, model_has_roles y permissions [00:40].
- Definición de Permisos: Se establece que los permisos definirán las acciones a las que tendrá acceso cada rol (ej., el Operador solo debe tener permisos para acciones de su módulo, no para Ajustes o Usuarios) [02:24].
- Tabla Clave: Se introduce la tabla role_has_permissions, que es la tabla pivote que relaciona a los roles con sus permisos asignados [08:26].
2. Creación de Permisos Basados en Rutas
El núcleo del capítulo es la creación masiva de permisos basada en los nombres de las rutas del sistema, asegurando que cada acción del controlador esté cubierta.
- Archivo de Configuración: Se trabaja en el archivo RoleSeeder (o equivalente) donde previamente se crearon los roles iniciales [03:58].
- Mapeo de Rutas a Permisos: Se decide que el nombre del permiso será el mismo que el name asignado a cada ruta en el archivo web.php (ej., ajustes.index, roles.create, usuarios.store) [05:03].
- Permisos Excluidos: Las rutas globales como home o admin no necesitan permiso porque son de acceso general para usuarios logueados [05:56].
- Módulo Ajustes: Se inicia la creación de permisos con el módulo Ajustes (ajustes.index y ajustes.update) [07:08].
- Módulo Roles y Usuarios: Se definen los permisos para las operaciones CRUD (Create, Read, Update, Delete) de cada módulo, incluyendo index, create, store, edit, update, destroy y show [11:36].
- Creación Masiva: Se repite el proceso para todos los módulos restantes (Espacios, Tarifas, Clientes, Vehículos, etc.), resultando en 53 permisos en total [13:51].
3. Asignación Inicial al Super Administrador
Se utiliza el comando migrate:fresh para cargar los nuevos permisos y se asignan de forma automática al rol principal.
- Sincronización de Permisos: Se implementa el método syncPermissions para asignar automáticamente todos los permisos creados al rol Super Administrador (Super Admin) [08:42].
- Objetivo: Garantizar que el rol principal tenga acceso inmediato a todas las funcionalidades del sistema sin restricciones [09:41].
- Ejecución del Seeder: Al ejecutar php artisan migrate:fresh [14:47]:
Próximo Paso: En el siguiente capítulo, se comenzará a restringir el acceso del sistema mediante código, aplicando estos permisos a las rutas y vistas [15:50].