feat(权限): 为所有 Filament 资源添加导航菜单权限控制

- 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() 方法
根据用户权限动态显示/隐藏导航菜单项
This commit is contained in:
2026-03-11 10:14:16 +08:00
parent 73d039bcd6
commit a100b2dce7
8 changed files with 64 additions and 0 deletions

View File

@@ -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
{

View File

@@ -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();

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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