68 Gestión de Permisos por Rol en Laravel 12: Tabla Pivote y Visualización de Accesos con Spatie 🔑📊
Duración: 17 min¡Contenido Exclusivo!
Adquiere este curso para tener acceso inmediato a esta y a **todas las lecciones Premium**.
Inscribirse Ahora por $10.00 Acceso instantáneo de por vida y código fuente incluido.Descripción
🔑 Lección 68: Gestión de Permisos por Rol y Uso de Tablas Pivote con Spatie
En esta sesión de Benji V2, conectamos los roles con sus respectivos permisos. Aprendemos el funcionamiento técnico de las tablas pivote y cómo automatizar la asignación de permisos para que el sistema sea funcional desde el primer segundo de su instalación.
🔗 La Tabla Pivote: role_has_permissions
Entendemos el corazón de la librería Spatie:
- 🤝 Unión de Identidades: Analizamos cómo la tabla role_has_permissions vincula el role_id con el permission_id. Esta relación simple es la que determina si un usuario puede o no realizar una acción [02:20].
- 🔄 Sincronización Automática: En lugar de asignar permisos manualmente en la base de datos, utilizamos el método syncPermissions() en nuestro RoleSeeder para que el rol de Superadministrador reciba automáticamente los 43 permisos del sistema al ejecutar las migraciones [08:41].
🛠️ Nuevas Acciones de Gestión de Seguridad
Para que el administrador pueda gestionar roles futuros (como un "Supervisor"), creamos nuevas rutas y métodos:
- 🛤️ Rutas de Permisos: Definimos dos nuevas acciones en web.php: una para visualizar el formulario de permisos de un rol y otra para actualizar (sincronizar) esos permisos [11:14].
- 🛡️ Protección de Gestión: Estas nuevas acciones también están protegidas por sus propios permisos: ver formulario de permisos del rol y actualizar permisos del rol [12:03].
- 🎨 Interfaz de Usuario: Añadimos un nuevo botón con un icono de escudo/llave en el listado de roles para acceder directamente a la gestión de permisos de cada perfil [15:21].
⚙️ Lógica del Controlador y Vista
Preparamos el terreno para la interfaz de asignación:
- 🔍 Recuperación de Datos: En el RoleController, implementamos el método permisos(), el cual busca el rol específico y recupera todos los permisos que tiene actualmente asignados para mostrarlos en pantalla [16:11].
- 📄 Nueva Vista: Creamos el archivo permisos.blade.php dentro del módulo de roles, que servirá como el panel central donde el administrador podrá marcar o desmarcar qué acciones permite a cada rol [17:04].
✅ Resultado de la Lección
Al finalizar, el Superadministrador ha recuperado el acceso total al sistema de forma legítima (no por estar "desbloqueado", sino por tener los permisos asignados). Además, ya contamos con la estructura necesaria para empezar a delegar responsabilidades a otros roles de manera granular y segura.
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️