Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ci sono configurazioni specifiche necessarie per utilizzare il pacchetto spatie in modo efficace


Ci sono configurazioni specifiche necessarie per utilizzare il pacchetto spatie in modo efficace


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