fix: enforce platform role menu access

This commit is contained in:
2026-07-27 12:48:35 +08:00
parent cd58e1f6b6
commit 160172bf10
33 changed files with 481 additions and 107 deletions

View File

@@ -4,6 +4,8 @@ export type ResourceFieldType =
| 'text'
| 'password'
| 'identity'
| 'role-code'
| 'menu-identities'
| 'number'
| 'boolean'
| 'date'
@@ -105,6 +107,7 @@ const labels: Record<string, string> = {
category: '分类',
priority: '优先级',
platform_role_code: '平台角色',
menu_identities: '菜单权限',
data_scope: '数据范围',
menu_code: '菜单编码',
icon: '图标',
@@ -181,6 +184,8 @@ const jsonFields = new Set([
]);
const textareaFields = new Set(['body', 'content', 'reason', 'opinion']);
const fieldType = (key: string): ResourceFieldType => {
if (key === 'platform_role_code') return 'role-code';
if (key === 'menu_identities') return 'menu-identities';
if (key.endsWith('_identity')) return 'identity';
if (key === 'password') return 'password';
if (numberFields.has(key)) return 'number';
@@ -541,14 +546,23 @@ export const resources: ResourceUiDefinition[] = [
'password!',
'display_name',
'avatar',
'platform_role_code',
'platform_role_code!',
'phone',
]),
define('platform_role', '/platform/platform_role', 'writable', 'list', [
'role_code!',
'name!',
'data_scope!',
]),
define(
'platform_role',
'/platform/platform_role',
'writable',
'list',
['role_code!', 'name!', 'data_scope!'],
[
action(
'分配菜单',
'/platform/platform_role/:identity/menu',
['menu_identities!'],
),
],
),
define('platform_menu', '/platform/platform_menu', 'writable', 'tree', [
'parent_identity',
'menu_code!',