From 830a269c5f99fb780614a494e1729444b95204b7 Mon Sep 17 00:00:00 2001 From: Lloric Mayuga Garcia Date: Sun, 11 Aug 2024 21:13:04 +0800 Subject: [PATCH] add seed output Signed-off-by: Lloric Mayuga Garcia --- src/Database/Seeders/BasePermissionSeeder.php | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/src/Database/Seeders/BasePermissionSeeder.php b/src/Database/Seeders/BasePermissionSeeder.php index 18fbfab..52ea802 100644 --- a/src/Database/Seeders/BasePermissionSeeder.php +++ b/src/Database/Seeders/BasePermissionSeeder.php @@ -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 $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 $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 {