Suggest adding event listeners to events() in TenancyServiceProvider (#199)

* Improve spatie/laravel-permission section

* Don't imply that the events method is static
This commit is contained in:
lukinovec 2022-09-02 17:41:34 +02:00 committed by GitHub
parent 92b99647e2
commit 4425a71556
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -29,19 +29,23 @@ php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvid
mv database/migrations/*_create_permission_tables.php database/migrations/tenant mv database/migrations/*_create_permission_tables.php database/migrations/tenant
``` ```
Then add this to your `TenancyServiceProvider::boot()`: Next, add the following listeners to the `TenancyBootstrapped` and `TenancyEnded` events to `events()` in your `TenancyServiceProvider`:
```php ```php
Event::listen(TenancyBootstrapped::class, function (TenancyBootstrapped $event) { Events\TenancyBootstrapped::class => [
\Spatie\Permission\PermissionRegistrar::$cacheKey = 'spatie.permission.cache.tenant.' . $event->tenancy->tenant->id; function (TenancyBootstrapped $event) {
}); \Spatie\Permission\PermissionRegistrar::$cacheKey = 'spatie.permission.cache.tenant.' . $event->tenancy->tenant->id;
}
],
Event::listen(TenancyEnded::class, function (TenancyEnded $event) { Events\TenancyEnded::class => [
\Spatie\Permission\PermissionRegistrar::$cacheKey = 'spatie.permission.cache'; function (TenancyEnded $event) {
}); \Spatie\Permission\PermissionRegistrar::$cacheKey = 'spatie.permission.cache';
}
],
``` ```
The reason for this is that spatie/laravel-permission caches permissions & roles to save DB queries, which means that we need to separate the permission cache by tenant. The reason for this is that spatie/laravel-permission caches permissions & roles to save DB queries, which means that we need to separate the permission cache by tenant. We also need to reset the cache key when tenancy ends so that the tenant's cache key isn't used in the central app.
## **laravel-medialibrary** {#laravel-medialibrary} ## **laravel-medialibrary** {#laravel-medialibrary}