Om het Spatie Laravel -toestemmingspakket effectief te gebruiken, zijn verschillende specifieke configuraties en installaties instellen vereist:
Installatie en publiceren
- Installeer het pakket via componist: `Composer vereist spatie/laravel-permission`.
- Publiceer het migratie- en configuratiebestand met behulp van de Artisan -opdracht:
`PHP Artisan Vendor: publiceren --Provider =" Spatie \ Permission \ PermissionserviceProvider "`.
- Voer de migraties uit om de benodigde tabellen te maken (`Roles`,` machtigingen`, `Model_has_permissions`,` Model_has_roles`, `Role_HAS_Permissions`) in de database.
Configuratie van gebruikersmodel
- Het gebruikersmodel (of elk authentieke model waaraan u rollen/machtigingen wilt toewijzen) moet de eigenschap 'hasroles' gebruiken die door het pakket wordt verstrekt. Dit maakt rol- en machtigingsbeheer op het model mogelijk.
Aanpassingen van het bestand configeren
- Het pakket publiceert een bestand `config/machtiging.php` waar u instellingen zoals tabelnamen, cache -instellingen en modelklassen kunt aanpassen.
- Als u UUID's gebruikt in plaats van ID's automatisch te worden ingegaan, moet u de migraties aanpassen en mogelijk het configuratiebestand dienovereenkomstig voordat u migraties uitvoert.
-Voor multi-tenant of teamgebaseerde setups moet u de functie "Teams" in het configuratiebestand inschakelen en configureren.
Cache -configuratie
- Het pakket maakt gebruik van caching om machtigingsopzoekingen te optimaliseren. Standaard is de cache -vervaldatum ingesteld op 24 uur.
- U kunt de cache -winkel, het voorvoegsel en de vervaltijd aanpassen in `config/machtiging.php` onder de array` cache`.
- In multi-tenant scenario's is het raadzaam om een uniek cache-voorvoegsel in te stellen om botsingen te voorkomen.
- Als uw app van huurders omschakelt tijdens een enkel verzoek, moet u mogelijk de machtigingscache handmatig opnieuw initialiseren.
Middleware
- Om routes te beschermen op basis van rollen of machtigingen, registreert u de middleware -aliassen van het pakket (`Role`,` toestemming ', `rol_or_permission`) in uw HTTP -kernel- of middleware -configuratie.
Geavanceerde aanpassing
- U kunt de rol- en machtigingsmodellen van het pakket uitbreiden als u gedrag wilt aanpassen, maar u moet voorzichtig zijn om het configuratiebestand bij te werken om naar uw aangepaste modellen te wijzen.
- De standaard databasetabelnamen wijzigen vereist het bijwerken van het configuratiebestand en mogelijk de migraties.
- Volg voor UUID -ondersteuning of andere geavanceerde use -cases de geavanceerde documentatiesecties van het pakket.
Samenvattend omvat de belangrijkste configuraties het publiceren en aanpassen van het configuratiebestand, het toevoegen van de `hasroles`-eigenschap aan uw gebruikersmodel, het uitvoeren van migraties, het correct configureren van caching en het optioneel instellen van middleware en multi-tenant-ondersteuning. Het volgen van deze stappen zorgt ervoor dat het spatiepakket effectief werkt in uw Laravel -toepassing [1] [2] [6] [8] [9].
Citaten:
[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-rollen/
[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-tabel