33 🔑 Cargando Permisos Agrupados en el Sistema | Parqueo Laravel 12 FullStack
Duración: 23 minDescripción
33 🔑 Índice de Lección: Cargando Permisos Agrupados en el Sistema (Laravel 12 FullStack)
La lección 33 se enfoca en la creación de la interfaz de asignación de permisos y en la manipulación de los datos del seeder para presentar los 55 permisos del sistema de manera organizada y agrupada por módulos.
1. Creación de Rutas y Funcionalidad del Controlador
Se definen las rutas necesarias para acceder a la vista de permisos de un rol específico y se crea el método en el controlador para extraer y agrupar los datos.
- Definición de Nuevas Rutas: Se añaden dos rutas al archivo web.php dentro del grupo roles [01:32]:
- admin.roles.permisos: Ruta de tipo GET para visualizar los permisos, aceptando el ID del rol.
- admin.roles.update.permisos: Ruta de tipo POST para actualizar los permisos.
- Actualización de Permisos: Se ejecuta migrate:fresh para añadir estas dos nuevas rutas como permisos en la base de datos, totalizando 55 permisos [03:52].
- Asignación de URL: Se actualiza el botón "Asignar permisos" en la vista roles.index para que apunte a la nueva ruta admin.roles.permisos, enviando el role ID [04:11].
- Función permisos en RoleController:
- Se crea el método permisos para recibir el ID del rol.
- Se utiliza el modelo Spatie Permission con el método all() para obtener la lista completa de los 55 permisos del sistema [06:16].
2. Agrupación Lógica de Permisos
Para una mejor visualización, se implementa una lógica en el controlador que agrupa los permisos, los cuales estaban previamente desordenados.
- Método de Agrupación: Se utiliza el método groupBy() en la colección de permisos para organizarlos por módulos [11:44].
- Lógica de Agrupación (strpos): La agrupación se realiza analizando el nombre del permiso (permission->name) y buscando una subcadena específica (ej., ajuste, roles, usuarios, espacios, tickets, etc.) [12:12].
- Módulos Agrupados: Se definen los grupos principales del sistema de parqueo:
- ajustes, roles, usuarios, espacios, tarifas, clientes, vehículo, tickets, facturaciones, y reportes [13:59].
3. Diseño de la Interfaz de Asignación
Se crea la vista roles.permisos.blade.php y se utiliza la agrupación para construir un formulario visualmente limpio.
- Vista y Formulario:
- Visualización Agrupada:
- Implementación de Checkboxes:
- Visualización del Estado: Se implementa la lógica para que los checkboxes del Super Administrador aparezcan chequeados por defecto, reflejando su asignación total [21:40].
- Próximo Paso: El próximo capítulo se enfocará en la implementación del controlador para actualizar y guardar los cambios de permisos en la base de datos [22:57].