Per utilizzare efficacemente il pacchetto di autorizzazione di Spatie Laravel, sono necessarie diverse configurazioni specifiche e passaggi di configurazione:
Installazione e pubblicazione
- Installa il pacchetto tramite compositore: `compositore richiede spatie/laravel-permission`.
- Pubblica il file di migrazione e configurazione utilizzando il comando artisan:
`PHP Artisan Vendor: Publish --Provider =" Spatie \ autorizzazione \ PermissionServiceProvider "`.
- Esegui le migrazioni per creare le tabelle necessarie (`ruoli`,` autorizzazioni`, `model_has_permissions`,` model_has_roles`, `Role_has_permissions`) nel database.
Configurazione del modello utente
- Il modello utente (o qualsiasi modello autenticabile a cui si desidera assegnare ruoli/autorizzazioni) deve utilizzare il tratto `Hasroles 'fornito dal pacchetto. Ciò consente la gestione del ruolo e delle autorizzazioni sul modello.
Regolazioni del file di configurazione
- Il pacchetto pubblica un file `config/automission.php` in cui è possibile personalizzare le impostazioni come nomi di tabelle, impostazioni della cache e classi di modelli.
- Se si utilizzano UUID invece di ID che incrementa auto, è necessario regolare le migrazioni e possibilmente il file di configurazione di conseguenza prima di eseguire le migrazioni.
-Per le configurazioni multi-tenant o basate su team, è necessario abilitare e configurare la funzione "team" nel file di configurazione.
Configurazione della cache
- Il pacchetto utilizza la memorizzazione nella cache per ottimizzare le ricerche di autorizzazione. Per impostazione predefinita, la scadenza della cache è impostata su 24 ore.
- È possibile personalizzare la cache, il prefisso e il tempo di scadenza in `config/automission.php` sotto l'array" cache ".
- In scenari multi-tenant, è consigliabile impostare un prefisso di cache unico per evitare gli scontri.
- Se la tua app commuta gli inquilini durante una singola richiesta, potrebbe essere necessario reinizializzare manualmente la cache dell'autorizzazione.
Middleware
- Per proteggere i percorsi in base a ruoli o autorizzazioni, registrare gli alias del middleware del pacchetto (`ruolo`,` autorizzazione`, `Role_or_permission`) nel kernel HTTP o nella configurazione del middleware.
personalizzazione avanzata
- È possibile estendere il ruolo del pacchetto e i modelli di autorizzazione se si desidera personalizzare il comportamento, ma devi fare attenzione ad aggiornare il file di configurazione per indicare i modelli personalizzati.
- Modifica dei nomi delle tabelle di database predefinite richiede l'aggiornamento del file di configurazione e possibilmente le migrazioni.
- Per il supporto UUID o altri casi d'uso avanzati, seguire le sezioni di documentazione avanzate del pacchetto.
In sintesi, le configurazioni chiave prevedono la pubblicazione e la personalizzazione del file di configurazione, l'aggiunta del tratto `Hasroles` al modello utente, l'esecuzione di migrazioni, la configurazione della cache correttamente e l'impostazione facoltativamente del supporto middleware e multi-tenant. Seguire questi passaggi assicura che il pacchetto spatie funzionerà efficacemente nell'applicazione Laravel [1] [2] [6] [8] [9].
Citazioni:
[1] https://spatie.be/docs/laravel-permission/v6/installation-laravel
[2] https://spatie.be/docs/laravel-permission/v6/prerequisites
[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-moles/
[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-moles-and-permissions/
[10] https://stackoverflow.com/questions/58114242/extending-the-spatie-mole-model-but-use-a--drent-database-table