Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
Signed-off-by: Lloric Mayuga Garcia <[email protected]>
  • Loading branch information
lloricode committed Aug 11, 2024
1 parent e53ff14 commit 0030418
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions src/Database/Seeders/DefaultPermissionSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -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<int, string> */
private static function getPermissionsFromPanels(): array
protected function getPermissionsFromPanels(): array
{
return collect(Filament::getPanels())
->map(fn (Panel $panel) => FilamentPermissionGenerateName::getPanelPermissionName($panel))
Expand All @@ -47,14 +47,25 @@ private static function getPermissionsFromPanels(): array
}

/** @return array<int, ResourceSeeder> */
private static function getPermissionsFromResourceModelPolicies(): array
protected function getPermissionsFromResourceModelPolicies(): array
{
$permissionsByPolicy = collect();

foreach (Filament::getResources() as $filamentResource) {

$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(),
Expand All @@ -68,7 +79,7 @@ private static function getPermissionsFromResourceModelPolicies(): array
}

/** @return array<int, string> */
private static function getPermissionsFromWidgets(): array
protected function getPermissionsFromWidgets(): array
{
$permissionNames = collect();

Expand Down

0 comments on commit 0030418

Please sign in to comment.