Add spatie/laravel-permission

This commit is contained in:
Samuel Štancl 2020-01-19 15:26:39 +01:00 committed by GitHub
parent 8b47a464a6
commit 0ba5f83b84
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -15,3 +15,22 @@ section: content
### For the central app: {#activitylog-central}
- Set the `database_connection` key in `config/activitylog.php` to the name of your central database connection.
## laravel-permission {#permission}
Install the package like usual, but publish the migrations and move them to `migrations/tenant`:
```
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
mv database/migrations/*_create_permission_tables.php database/migrations/tenant
```
Then add this to your `AppServiceProvider::boot()` method:
```php
tenancy()->hook('bootstrapped', function (TenantManager $tenantManager) {
\Spatie\Permission\PermissionRegistrar::$cacheKey = 'spatie.permission.cache.tenant.' . $tenantManager->getTenant('id');
});
```
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.