57 🔄 Sincronización de Permisos a cada Rol: Lógica de Guardado con sync() en Spatie | Laravel 12
Duración: 13 min
Módulo: ⚙️ Gestión de Órdenes, Perfiles y Características Avanzadas 43-61
Lección 15 de
19
¡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 57: 🔄 Sincronización de Permisos a cada Rol | Lógica de Guardado y Restricción de Acceso con Spatie
Esta lección culmina la implementación del módulo de roles y permisos, proporcionando la funcionalidad de guardado para la asignación de permisos y aplicando finalmente las restricciones de acceso a las rutas administrativas.
1. 💾 Lógica de Sincronización de Permisos (Update)
Se implementa la funcionalidad para guardar la selección de permisos a un rol específico:
- Ruta de Actualización 🛣️: Se utiliza la ruta update-permisos con el método PUT para procesar el formulario de asignación [01:12].
- Estructura del Formulario 📝:
- Función del Controlador:
- El método update-permisos recibe el ID del rol y el array de permisos.
- Sincronización sync() 🔄: Se utiliza el método sync($permisos) de Spatie sobre el objeto Rol, el cual se encarga de:
- Desvincular cualquier permiso existente que haya sido desmarcado.
- Vincular los nuevos permisos marcados.
- Mantener los permisos marcados sin cambios, asegurando que solo el conjunto de IDs recibidos esté asignado al rol [06:02].
- Prueba Exitosa 🎉: Se demuestra la asignación selectiva de permisos a un rol de prueba ("Operador"), y la base de datos registra correctamente las nuevas relaciones [06:54].
2. 🚫 Restricción de Acceso a Rutas Críticas
El objetivo final de seguridad se alcanza aplicando los permisos definidos a las rutas de Laravel:
- Uso de Middleware can 🛡️: En el archivo de rutas (web.php), se extiende el middleware de autenticación con el middleware can proporcionado por Spatie [10:10].
- Sintaxis de Restricción: Se utiliza la sintaxis middleware('can:nombre_del_permiso') para especificar que solo los usuarios con el permiso listado podrán acceder a esa ruta [10:25].
- Ejemplo 1 (Dashboard) 🚪: La ruta /admin se restringe al permiso ver dashboard del admin [09:50].
- Prueba de Cliente ❌: Al intentar acceder a /admin con un usuario que tiene el rol Cliente (sin el permiso), el sistema devuelve un Error 403 (Acción No Autorizada), confirmando que la seguridad funciona correctamente [11:09].
- Implementación Completa: Se establece que cada ruta administrativa deberá ser protegida individualmente con su correspondiente permiso para garantizar una seguridad granular en todo el sistema [11:43].
Lecciones
🚀 Configuración Inicial y Sistema de Administración 1-6
🛡️ Roles, Permisos y Gestión de Usuarios (Spatie) 7-16
Lección 4. 10 ⚙️ CRUD Completo de Roles | Spatie Roles & Permisos | Ecommerce Laravel 12 FullStack
25 min
Lección 6. 12 🔐 Ajustes en el Login y Seeder de Usuarios | Sistema Ecommerce Laravel 12 FullStack
40 min
Lección 8. 14 🔍 Buscador y Detalle de Usuarios (Acción Show) | Ecommerce Laravel 12 FullStack
32 min
📦 Módulos Esenciales (Categorías y Productos) 17-24
🛒 Tienda Online (Frontend Shop) y Funcionalidades 25-33
Lección 4. 28 🛒 Vista Show Dinámica del Producto | Descripción y Datos Relacionados | Laravel 12
15 min
💳 Carrito, Checkout y Pasarela de Pagos 34-42
Lección 4. 37 💳 PASARELA DE PAGOS PayPal | Integración y Lógica de Checkout en Laravel 12 E-commerce
27 min
Lección 5. 38 ✅ PAGO COMPLETADO y REGISTRO de Pedido | Lógica Final de Venta con PayPal y Laravel 12
11 min
⚙️ Gestión de Órdenes, Perfiles y Características Avanzadas 43-61
Lección 5. 47 🔗 BUSCADOR AVANZADO: Filtrando Tablas Relacionadas con WHERE HAS y Joins en Laravel 12
10 min
📊 Análisis de Datos, Despliegue y Conclusión 62-68
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️