From a100b2dce7cceffd061c0fb8862a60186c9de609 Mon Sep 17 00:00:00 2001 From: lizhuoran <625237490@qq.com> Date: Wed, 11 Mar 2026 10:14:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=9D=83=E9=99=90):=20=E4=B8=BA=E6=89=80?= =?UTF-8?q?=E6=9C=89=20Filament=20=E8=B5=84=E6=BA=90=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=AF=BC=E8=88=AA=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DocumentResource: 添加 document.view 权限检查 - SystemSettingResource: 添加 system-setting.view 权限检查 - ActivityLogResource: 添加 activity-log.view 权限检查 - TerminalResource: 添加 terminal.view 权限检查 - SopTemplateResource: 添加 sop-template.view 权限检查 - GroupResource: 添加 group.view 权限检查 - UserResource: 添加 user.view 权限检查 - RoleResource: 添加 role.viewAny 权限检查 所有资源都实现了 shouldRegisterNavigation() 方法 根据用户权限动态显示/隐藏导航菜单项 --- app/Filament/Resources/ActivityLogResource.php | 8 ++++++++ app/Filament/Resources/DocumentResource.php | 8 ++++++++ app/Filament/Resources/GroupResource.php | 8 ++++++++ app/Filament/Resources/RoleResource.php | 8 ++++++++ app/Filament/Resources/SopTemplateResource.php | 8 ++++++++ app/Filament/Resources/SystemSettingResource.php | 8 ++++++++ app/Filament/Resources/TerminalResource.php | 8 ++++++++ app/Filament/Resources/UserResource.php | 8 ++++++++ 8 files changed, 64 insertions(+) diff --git a/app/Filament/Resources/ActivityLogResource.php b/app/Filament/Resources/ActivityLogResource.php index b9ad221..43d949e 100644 --- a/app/Filament/Resources/ActivityLogResource.php +++ b/app/Filament/Resources/ActivityLogResource.php @@ -25,6 +25,14 @@ class ActivityLogResource extends Resource protected static ?int $navigationSort = 2; + /** + * 控制导航菜单是否显示 + */ + public static function shouldRegisterNavigation(): bool + { + return auth()->user()?->can('activity-log.view') ?? false; + } + // 禁用创建功能 public static function canCreate(): bool { diff --git a/app/Filament/Resources/DocumentResource.php b/app/Filament/Resources/DocumentResource.php index e0085de..dd819c7 100644 --- a/app/Filament/Resources/DocumentResource.php +++ b/app/Filament/Resources/DocumentResource.php @@ -27,6 +27,14 @@ class DocumentResource extends Resource protected static ?int $navigationSort = 1; + /** + * 控制导航菜单是否显示 + */ + public static function shouldRegisterNavigation(): bool + { + return auth()->user()?->can('document.view') ?? false; + } + public static function getEloquentQuery(): Builder { $query = parent::getEloquentQuery(); diff --git a/app/Filament/Resources/GroupResource.php b/app/Filament/Resources/GroupResource.php index cb660e9..a92484c 100644 --- a/app/Filament/Resources/GroupResource.php +++ b/app/Filament/Resources/GroupResource.php @@ -27,6 +27,14 @@ class GroupResource extends Resource protected static ?int $navigationSort = 2; + /** + * 控制导航菜单是否显示 + */ + public static function shouldRegisterNavigation(): bool + { + return auth()->user()?->can('group.view') ?? false; + } + public static function form(Form $form): Form { return $form diff --git a/app/Filament/Resources/RoleResource.php b/app/Filament/Resources/RoleResource.php index c0899d6..6cdbbbc 100644 --- a/app/Filament/Resources/RoleResource.php +++ b/app/Filament/Resources/RoleResource.php @@ -27,6 +27,14 @@ class RoleResource extends Resource protected static ?string $navigationGroup = '系统管理'; + /** + * 控制导航菜单是否显示 + */ + public static function shouldRegisterNavigation(): bool + { + return auth()->user()?->can('role.viewAny') ?? false; + } + public static function form(Form $form): Form { return $form diff --git a/app/Filament/Resources/SopTemplateResource.php b/app/Filament/Resources/SopTemplateResource.php index c5d91ff..ef92fb6 100644 --- a/app/Filament/Resources/SopTemplateResource.php +++ b/app/Filament/Resources/SopTemplateResource.php @@ -25,6 +25,14 @@ class SopTemplateResource extends Resource protected static ?int $navigationSort = 4; + /** + * 控制导航菜单是否显示 + */ + public static function shouldRegisterNavigation(): bool + { + return auth()->user()?->can('sop-template.view') ?? false; + } + public static function form(Form $form): Form { return $form diff --git a/app/Filament/Resources/SystemSettingResource.php b/app/Filament/Resources/SystemSettingResource.php index 3e41f88..30be3ae 100644 --- a/app/Filament/Resources/SystemSettingResource.php +++ b/app/Filament/Resources/SystemSettingResource.php @@ -24,6 +24,14 @@ class SystemSettingResource extends Resource protected static ?int $navigationSort = 1; + /** + * 控制导航菜单是否显示 + */ + public static function shouldRegisterNavigation(): bool + { + return auth()->user()?->can('system-setting.view') ?? false; + } + public static function form(Form $form): Form { return $form diff --git a/app/Filament/Resources/TerminalResource.php b/app/Filament/Resources/TerminalResource.php index df0d61f..ac31909 100644 --- a/app/Filament/Resources/TerminalResource.php +++ b/app/Filament/Resources/TerminalResource.php @@ -28,6 +28,14 @@ class TerminalResource extends Resource protected static ?string $navigationGroup = '大屏配置'; + /** + * 控制导航菜单是否显示 + */ + public static function shouldRegisterNavigation(): bool + { + return auth()->user()?->can('terminal.view') ?? false; + } + public static function form(Form $form): Form { return $form diff --git a/app/Filament/Resources/UserResource.php b/app/Filament/Resources/UserResource.php index 9dc1073..ad58466 100644 --- a/app/Filament/Resources/UserResource.php +++ b/app/Filament/Resources/UserResource.php @@ -27,6 +27,14 @@ class UserResource extends Resource protected static ?int $navigationSort = 3; + /** + * 控制导航菜单是否显示 + */ + public static function shouldRegisterNavigation(): bool + { + return auth()->user()?->can('user.view') ?? false; + } + public static function form(Form $form): Form { return $form