feat(ops): 增加运行时性能看板

This commit is contained in:
2026-07-08 17:47:36 +08:00
parent 58c98a3a3d
commit 15653b5b35
19 changed files with 933 additions and 2 deletions

View File

@@ -52,6 +52,14 @@ export const PERMISSION_GROUPS: PermissionGroup[] = [
{ action: 'manage', label: '管理', permission: 'xiaobao.warning:manage' },
],
},
{
module: 'ops',
moduleLabel: '运维看板',
category: 'main',
actions: [
{ action: 'view', label: '查看', permission: 'ops:view' },
],
},
{ module: 'member', moduleLabel: '成员', category: 'main', actions: std4('member') },
{ module: 'role', moduleLabel: '角色', category: 'main', actions: std4('role') },
{ module: 'version.req', moduleLabel: '需求 Tab', category: 'version_tab', actions: stdTab('version.req') },

View File

@@ -1,7 +1,7 @@
import assert from 'node:assert/strict';
import test from 'node:test';
import type { RoleItem } from './members';
import { DEFAULT_ROLE_PERMISSIONS } from './permissions';
import { ALL_PERMISSIONS, DEFAULT_ROLE_PERMISSIONS } from './permissions';
import { mergePresetRolePermissions } from './role-permission-migration';
test('default group leader role has business permissions without admin modules', () => {
@@ -14,6 +14,13 @@ test('default group leader role has business permissions without admin modules',
assert.equal(permissions.some((p) => p.startsWith('role:')), false);
});
test('ops view permission is grantable but not part of non-admin preset roles', () => {
assert.ok(ALL_PERMISSIONS.includes('ops:view'));
assert.ok(DEFAULT_ROLE_PERMISSIONS['role-admin'].includes('*'));
assert.equal(DEFAULT_ROLE_PERMISSIONS['role-pm'].includes('ops:view'), false);
assert.equal(DEFAULT_ROLE_PERMISSIONS['role-lead'].includes('ops:view'), false);
});
test('mergePresetRolePermissions adds the built-in group leader role to old role data', () => {
const roles: RoleItem[] = [
{