From 00304187a8861de1f4cb04a4897fd05bf1b541f1 Mon Sep 17 00:00:00 2001 From: Lloric Mayuga Garcia Date: Mon, 12 Aug 2024 07:28:43 +0800 Subject: [PATCH] wip Signed-off-by: Lloric Mayuga Garcia --- .../Seeders/DefaultPermissionSeeder.php | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/Database/Seeders/DefaultPermissionSeeder.php b/src/Database/Seeders/DefaultPermissionSeeder.php index b448f1c..2bda5f2 100644 --- a/src/Database/Seeders/DefaultPermissionSeeder.php +++ b/src/Database/Seeders/DefaultPermissionSeeder.php @@ -27,16 +27,16 @@ protected function permissionsByGuard(): array { return [ Config::string('filament-permission.guard') => new PermissionSeeder( - panels: self::getPermissionsFromPanels(), - pages: self::getPermissionsFromPages(), - widgets: self::getPermissionsFromWidgets(), - resources: self::getPermissionsFromResourceModelPolicies() + panels: $this->getPermissionsFromPanels(), + pages: $this->getPermissionsFromPages(), + widgets: $this->getPermissionsFromWidgets(), + resources: $this->getPermissionsFromResourceModelPolicies() ), ]; } /** @return array */ - private static function getPermissionsFromPanels(): array + protected function getPermissionsFromPanels(): array { return collect(Filament::getPanels()) ->map(fn (Panel $panel) => FilamentPermissionGenerateName::getPanelPermissionName($panel)) @@ -47,7 +47,7 @@ private static function getPermissionsFromPanels(): array } /** @return array */ - private static function getPermissionsFromResourceModelPolicies(): array + protected function getPermissionsFromResourceModelPolicies(): array { $permissionsByPolicy = collect(); @@ -55,6 +55,17 @@ private static function getPermissionsFromResourceModelPolicies(): array $modelPolicy = Gate::getPolicyFor($filamentResource::getModel()); + if ($modelPolicy === null) { + $output = $this->command->getOutput(); + $output->warning(sprintf( + 'Resource [%s] does not have a policy for model [%s].', + $filamentResource, + $filamentResource::getModel() + )); + + continue; + } + $permissionsByPolicy->push(new ResourceSeeder( resource: $filamentResource, model: $filamentResource::getModel(), @@ -68,7 +79,7 @@ private static function getPermissionsFromResourceModelPolicies(): array } /** @return array */ - private static function getPermissionsFromWidgets(): array + protected function getPermissionsFromWidgets(): array { $permissionNames = collect();