Skip to content

Commit

Permalink
add seed output
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 6e4e7b4 commit 830a269
Showing 1 changed file with 42 additions and 2 deletions.
44 changes: 42 additions & 2 deletions src/Database/Seeders/BasePermissionSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,56 @@ function (PermissionSeeder $permissionSeeder, string $guardName) use ($permissio
count($allPermissionNames)
));

$output->newLine();

$permissionClass::whereGuardName($guardName)
->whereNotIn('name', $allPermissionNames)
->delete();

$this->tablePagesPanelWidgets('panels', $permissionSeeder->panels);
$this->tablePagesPanelWidgets('pages', $permissionSeeder->pages);
$this->tablePagesPanelWidgets('widgets', $permissionSeeder->widgets);
$this->tableResources($permissionSeeder->resources);

$output->newLine();
}
);

}

/**
* @param array<int, string> $permissions
*/
private function tablePagesPanelWidgets(string $type, array $permissions): void
{
$output = $this->command->getOutput();

$rows = [];
foreach ($permissions as $permissionName) {
$rows[] = [$permissionName];
}
$output->table([$type], $rows);

}

/**
* @param array<int, ResourceSeeder> $resourceSeeders
*/
private function tableResources(array $resourceSeeders): void
{
$output = $this->command->getOutput();

$rows = [];
foreach ($resourceSeeders as $resourceSeeder) {
$rows[] = [
Str::of($resourceSeeder->resource)->classBasename(),
Str::of($resourceSeeder->model)->classBasename(),
Str::of($resourceSeeder->modelPolicy)->classBasename(),
implode(PHP_EOL, $resourceSeeder->permissionNames),
];
}

$output->table(['resource', 'model', 'modelPolicy', 'permissionNames'], $rows);
}

/** @param class-string $modelPolicy */
protected static function generateFilamentResourcePermissions(string $modelPolicy): array
{
Expand Down

0 comments on commit 830a269

Please sign in to comment.