Para usar el paquete de permiso de Spatie Laravel de manera efectiva, se requieren varias configuraciones específicas y pasos de configuración:
Instalación y publicación
- Instale el paquete a través del compositor: `El compositor requiere Spatie/Laravel-Permission`.
- Publique el archivo de migración y configuración utilizando el comando Artisan:
`Vendor artesanal PHP: publish --Provider =" Spatie \ Permission \ PermissionServiceProvider "`.
- Ejecute las migraciones para crear las tablas necesarias (`roles`,` permissions`, `model_has_permissions`,` model_has_roles`, `rol_has_permissions`) en la base de datos.
Configuración del modelo de usuario
- El modelo de usuario (o cualquier modelo de autenticidad al que desee asignar roles/permisos) debe usar el rasgo 'HaSroles' proporcionado por el paquete. Esto permite la gestión de roles y permisos en el modelo.
Ajustes de archivo de configuración
- El paquete publica un archivo `config/permiso.php` donde puede personalizar la configuración, como nombres de tabla, configuraciones de caché y clases de modelos.
- Si está utilizando UUID en lugar de ID de incremento automático, debe ajustar las migraciones y posiblemente el archivo de configuración en consecuencia antes de ejecutar migraciones.
-Para configuraciones múltiples o basadas en equipos, debe habilitar y configurar la función "Equipos" en el archivo de configuración.
Configuración de caché
- El paquete utiliza almacenamiento en caché para optimizar las búsquedas de permisos. Por defecto, la expiración de caché se establece en 24 horas.
- Puede personalizar la tienda de caché, el prefijo y el tiempo de vencimiento en `config/permiso.php` en la matriz` Cache`.
- En escenarios de múltiples inquilinos, es aconsejable establecer un prefijo de caché único para evitar enfrentamientos.
- Si su aplicación cambia de inquilinos durante una sola solicitud, es posible que deba reiniciar manualmente el caché de permiso.
Middleware
- Para proteger las rutas basadas en roles o permisos, registre los alias de middleware del paquete (`rol`,` permiso`, `rol_or_permission`) en su configuración de núcleo o middleware HTTP.
Personalización avanzada
- Puede extender los modelos de rol y permiso del paquete si desea personalizar el comportamiento, pero debe tener cuidado de actualizar el archivo de configuración para señalar sus modelos personalizados.
- Cambiar los nombres de tabla de base de datos predeterminados requiere actualizar el archivo de configuración y posiblemente las migraciones.
- Para soporte UUID u otros casos de uso avanzado, siga las secciones de documentación avanzada del paquete.
En resumen, las configuraciones clave implican publicar y personalizar el archivo de configuración, agregando el rasgo de 'HaSroles' a su modelo de usuario, ejecutar migraciones, configurar el almacenamiento en caché correctamente y configurar opcionalmente el soporte de Middleware y Multiinant. Seguir estos pasos asegura que el paquete Spatie funcione de manera efectiva en su aplicación Laravel [1] [2] [6] [8] [9].
Citas:
[1] https://spatie.be/docs/laravel-permission/v6/installation-laravel
[2] https://spatie.be/docs/laravel-permission/v6/Preequisites
[3] https://spatie.be/docs/laravel-data/v4/requirements
[4] https://packagist.org/packages/spatie/laravel-settings
[5] https://spatie.be/docs/laravel-html/v3/installation-setup
[6] https://www.honeybadger.io/blog/laravel-permissions-roles/
[7] https://github.com/spatie/laravel-slack-alerts/discussions/22
[8] https://github.com/spatie/laravel-permission/blob/main/docs/advanced-usage/cache.md
[9] https://www.allphptricks.com/laravel-11 spatie-user-roles-and-permissions/
[10] https://stackoverflow.com/questions/58114242/extending-the spatie-role-model-but-use-a-different-database-table