From da0c66701bcfefb1c0138eb5fb1283baa30dcdfb Mon Sep 17 00:00:00 2001 From: Lloric Mayuga Garcia Date: Sun, 25 Aug 2024 12:32:21 +0800 Subject: [PATCH] wip Signed-off-by: Lloric Mayuga Garcia --- .../Seeders/DefaultPermissionSeeder.php | 11 +++++++--- .../RoleResource/Schema/PermissionSchema.php | 20 ++++++++----------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/Database/Seeders/DefaultPermissionSeeder.php b/src/Database/Seeders/DefaultPermissionSeeder.php index 1b133b1..d4cb144 100644 --- a/src/Database/Seeders/DefaultPermissionSeeder.php +++ b/src/Database/Seeders/DefaultPermissionSeeder.php @@ -123,9 +123,14 @@ private static function getPermissionsFromPages(): array /** @return array */ protected function getCustomPermissionNames(): array { - return collect(PermissionConfig::customPermissionsNames()) - ->map(fn (string $custom) => FilamentPermissionGenerateName::getCustomPermissionName($custom)) - ->prepend(PermissionType::customs->value) + $customs = collect(PermissionConfig::customPermissionsNames()) + ->map(fn (string $custom) => FilamentPermissionGenerateName::getCustomPermissionName($custom)); + + if ($customs->isEmpty()) { + return []; + } + + return $customs->prepend(PermissionType::customs->value) ->values() ->sort() ->toArray(); diff --git a/src/Resources/RoleResource/Schema/PermissionSchema.php b/src/Resources/RoleResource/Schema/PermissionSchema.php index 4b9f283..c3222b1 100644 --- a/src/Resources/RoleResource/Schema/PermissionSchema.php +++ b/src/Resources/RoleResource/Schema/PermissionSchema.php @@ -132,43 +132,39 @@ function (Get $get): array { ]), Forms\Components\Tabs\Tab::make(trans('Panels')) ->schema(function () { - $return = []; foreach (PermissionCollection::groupByTypeThenParent(self::$guardName)[PermissionType::panels->value] ?? [] as $parentPermission => $permissionsDatas) { - $return[] = self::abilities($permissionsDatas, $parentPermission); + return [self::abilities($permissionsDatas, $parentPermission)]; } - return $return; + return []; }), Forms\Components\Tabs\Tab::make(trans('Pages')) ->schema(function () { - $return = []; foreach (PermissionCollection::groupByTypeThenParent(self::$guardName)[PermissionType::pages->value] ?? [] as $parentPermission => $permissionsDatas) { - $return[] = self::abilities($permissionsDatas, $parentPermission); + return [self::abilities($permissionsDatas, $parentPermission)]; } - return $return; + return []; }), Forms\Components\Tabs\Tab::make(trans('Widgets')) ->schema(function () { - $return = []; foreach (PermissionCollection::groupByTypeThenParent(self::$guardName)[PermissionType::widgets->value] ?? [] as $parentPermission => $permissionsDatas) { - $return[] = self::abilities($permissionsDatas, $parentPermission); + return [self::abilities($permissionsDatas, $parentPermission)]; } - return $return; + return []; }), Forms\Components\Tabs\Tab::make(trans('Custom permissions')) ->schema(function () { - $return = []; foreach (PermissionCollection::groupByTypeThenParent(self::$guardName)[PermissionType::customs->value] ?? [] as $parentPermission => $permissionsDatas) { - $return[] = self::abilities($permissionsDatas, $parentPermission); + return [self::abilities($permissionsDatas, $parentPermission)]; } - return $return; + return []; }), ]),