diff --git a/frontend/src/pages/AuditLogsPage.tsx b/frontend/src/pages/AuditLogsPage.tsx index dc2ced7..0d3214e 100644 --- a/frontend/src/pages/AuditLogsPage.tsx +++ b/frontend/src/pages/AuditLogsPage.tsx @@ -20,14 +20,14 @@ interface AuditLogResponse { } const ACTION_COLORS: Record = { - CREATE_TICKET: 'bg-blue-100 text-blue-800', - REVIEW_TICKET: 'bg-yellow-100 text-yellow-800', - EXECUTE_TICKET: 'bg-green-100 text-green-800', - CREATE_INSTANCE: 'bg-purple-100 text-purple-800', - DELETE_INSTANCE: 'bg-red-100 text-red-800', - CREATE_USER: 'bg-indigo-100 text-indigo-800', - DELETE_USER: 'bg-red-100 text-red-800', - QUERY: 'bg-cyan-100 text-cyan-800', + CREATE_TICKET: 'bg-blue-500/15 text-blue-400', + REVIEW_TICKET: 'bg-yellow-500/15 text-yellow-400', + EXECUTE_TICKET: 'bg-green-500/15 text-green-400', + CREATE_INSTANCE: 'bg-purple-500/15 text-purple-400', + DELETE_INSTANCE: 'bg-red-500/15 text-red-400', + CREATE_USER: 'bg-indigo-500/15 text-indigo-400', + DELETE_USER: 'bg-red-500/15 text-red-400', + QUERY: 'bg-cyan-500/15 text-cyan-400', }; const TARGET_ICONS: Record = { @@ -75,8 +75,8 @@ export default function AuditLogsPage() { return (
-

审计日志

- 共 {total} 条记录 +

审计日志

+ 共 {total} 条记录
{/* Filters */} @@ -88,7 +88,7 @@ export default function AuditLogsPage() { className={`px-3 py-1 text-xs rounded-full transition-colors ${ filterAction === action ? 'bg-blue-600 text-white' - : 'bg-gray-100 text-gray-600 hover:bg-gray-200' + : 'bg-[var(--dg-bg-tertiary)] text-[var(--dg-text-secondary)] hover:bg-[var(--dg-bg-hover)]' }`} > {action || '全部'} @@ -97,36 +97,36 @@ export default function AuditLogsPage() {
{/* Table */} -
+
- + - + {loading ? ( - + ) : logs.length === 0 ? ( - + ) : ( logs.map(log => ( - + - - + + )) )} @@ -140,15 +140,15 @@ export default function AuditLogsPage() { - {page} / {totalPages} + {page} / {totalPages} diff --git a/frontend/src/pages/InstanceGroupPage.tsx b/frontend/src/pages/InstanceGroupPage.tsx index 653a948..37b6ad1 100644 --- a/frontend/src/pages/InstanceGroupPage.tsx +++ b/frontend/src/pages/InstanceGroupPage.tsx @@ -6,25 +6,13 @@ import { instanceApi } from '@/api/instance'; import { userApi } from '@/api/user'; import { useActionPermission } from '@/hooks/useAuth'; -// 权限预设 +// 权限项 — 与后端 PERMISSION_ACTIONS 保持一致 var PERMISSION_CATEGORIES = [ { label: '查询权限', items: [ { code: 'query:select', name: 'SELECT 查询' }, - { code: 'query:insert', name: 'INSERT 插入' }, - { code: 'query:update', name: 'UPDATE 更新' }, - { code: 'query:delete', name: 'DELETE 删除' }, - ], - }, - { - label: 'DDL 权限', - items: [ - { code: 'ddl:create_table', name: '创建表' }, - { code: 'ddl:alter_table', name: '修改表' }, - { code: 'ddl:drop_table', name: '删除表' }, - { code: 'ddl:create_index', name: '创建索引' }, - { code: 'ddl:drop_index', name: '删除索引' }, + { code: 'query:write', name: '写入操作 (INSERT/UPDATE/DELETE)' }, ], }, { @@ -32,23 +20,21 @@ var PERMISSION_CATEGORIES = [ items: [ { code: 'ticket:create', name: '创建工单' }, { code: 'ticket:approve', name: '审批工单' }, - { code: 'ticket:reject', name: '拒绝工单' }, { code: 'ticket:execute', name: '执行工单' }, ], }, { - label: '数据操作', + label: 'DDL 权限', items: [ - { code: 'export:data', name: '导出数据' }, - { code: 'import:data', name: '导入数据' }, + { code: 'ddl:execute', name: 'DDL 执行' }, ], }, { - label: '管理权限', + label: '运维权限', items: [ - { code: 'instance:connect', name: '连接实例' }, - { code: 'instance:view_slow_query', name: '查看慢查询' }, - { code: 'instance:kill_process', name: '终止进程' }, + { code: 'slowlog:view', name: '查看慢日志' }, + { code: 'backup:manage', name: '备份管理' }, + { code: 'instance:detail', name: '实例详情' }, ], }, ];
操作 目标 详情 时间
加载中...
加载中...
暂无审计日志
暂无审计日志
- + {log.action} {TARGET_ICONS[log.target_type] || '📌'} - {log.target_type} - {log.target_id && #{log.target_id}} + {log.target_type} + {log.target_id && #{log.target_id}} {log.detail || '-'}{formatDate(log.created_at)}{log.detail || '-'}{formatDate(log.created_at)}