Skip to content

Commit 3fb1b59

Browse files
committed
add filament policy configuration
1 parent bee5c74 commit 3fb1b59

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

config/filament-flexible-blocks-asset-manager.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,16 @@
8484
*/
8585
'storage_visibility' => 'public',
8686

87+
/*
88+
|--------------------------------------------------------------------------
89+
| Asset Filament authorisation
90+
|--------------------------------------------------------------------------
91+
|
92+
| To authorise access to the Filament resource, you can configure a policy,
93+
| see https://laravel.com/docs/11.x/authorization#writing-policies
94+
*/
95+
'asset_filament_authorisation' => null, //AssetFilamentPolicy::class,
96+
8797
/*
8898
|--------------------------------------------------------------------------
8999
| Asset authorisation

src/FilamentFlexibleBlocksAssetManagerConfig.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ public static function getAssetAuthorisationPolicy(): ?string
1919
return self::getConfig('asset_authorisation.policy');
2020
}
2121

22+
public static function getAssetFilamentAuthorisationPolicy(): ?string
23+
{
24+
return self::getConfig('asset_filament_authorisation');
25+
}
26+
2227
public static function getStorageDisk(): ?string
2328
{
2429
return self::getConfig('storage_disk');

src/FilamentFlexibleBlocksAssetManagerServiceProvider.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Filament\Support\Facades\FilamentIcon;
1111
use Illuminate\Database\Eloquent\Relations\Relation;
1212
use Illuminate\Filesystem\Filesystem;
13+
use Illuminate\Support\Facades\Gate;
1314
use Livewire\Features\SupportTesting\Testable;
1415
use Spatie\LaravelPackageTools\Commands\InstallCommand;
1516
use Spatie\LaravelPackageTools\Package;
@@ -96,6 +97,16 @@ public function packageBooted(): void
9697
Relation::morphMap([
9798
'filament-flexible-blocks-asset-manager::asset' => AssetModel::class,
9899
], true);
100+
101+
//add policies
102+
if(FilamentFlexibleBlocksAssetManagerConfig::getAssetFilamentAuthorisationPolicy()){
103+
Gate::policy(\Statikbe\FilamentFlexibleBlocksAssetManager\Models\Asset::class,
104+
FilamentFlexibleBlocksAssetManagerConfig::getAssetFilamentAuthorisationPolicy());
105+
}
106+
if(FilamentFlexibleBlocksAssetManagerConfig::getAssetAuthorisationPolicy()){
107+
Gate::policy(\Statikbe\FilamentFlexibleBlocksAssetManager\Models\Asset::class,
108+
FilamentFlexibleBlocksAssetManagerConfig::getAssetAuthorisationPolicy());
109+
}
99110
}
100111

101112
protected function getAssetPackageName(): ?string

0 commit comments

Comments
 (0)