from dataclasses import dataclass @dataclass(frozen=True) class PermissionSpec: codename: str name: str module: str PERMISSIONS: tuple[PermissionSpec, ...] = ( PermissionSpec("ticket.view", "查看工单", "工单"), PermissionSpec("ticket.create", "创建工单", "工单"), PermissionSpec("ticket.edit", "编辑工单", "工单"), PermissionSpec("ticket.export", "导出工单", "工单"), PermissionSpec("ticket.assign", "分派工单", "工单"), PermissionSpec("ticket.close", "关闭工单", "工单"), PermissionSpec("solution.view", "查看解决方案", "解决方案"), PermissionSpec("solution.manage", "管理解决方案", "解决方案"), PermissionSpec("knowledge.view", "查看知识库", "知识库"), PermissionSpec("knowledge.manage", "管理知识库", "知识库"), PermissionSpec("agent.use", "使用 Agent", "AI 平台"), PermissionSpec("agent.manage", "管理 Agent", "AI 平台"), PermissionSpec("model.manage", "管理模型配置", "AI 平台"), PermissionSpec("tool.manage", "管理 MCP 工具", "AI 平台"), PermissionSpec("system.user.view", "查看用户", "系统治理"), PermissionSpec("system.user.manage", "管理用户", "系统治理"), PermissionSpec("system.user_group.view", "查看用户组", "系统治理"), PermissionSpec("system.user_group.manage", "管理用户组", "系统治理"), PermissionSpec("system.role.view", "查看角色权限", "系统治理"), PermissionSpec("system.role.manage", "管理角色权限", "系统治理"), PermissionSpec("system.menu.view", "查看菜单权限", "系统治理"), PermissionSpec("system.menu.manage", "管理菜单权限", "系统治理"), PermissionSpec("system.audit.view", "查看操作审计", "系统治理"), PermissionSpec("system.setting.manage", "管理系统设置", "系统治理"), ) DEFAULT_GROUPS: dict[str, tuple[str, ...]] = { "系统管理员": tuple(permission.codename for permission in PERMISSIONS), "知识库管理员": ( "ticket.view", "knowledge.view", "knowledge.manage", "solution.view", "solution.manage", "agent.use", ), "技术支持": ( "ticket.view", "ticket.create", "ticket.edit", "ticket.assign", "ticket.close", "knowledge.view", "solution.view", "agent.use", ), "普通建单人": ( "ticket.view", "ticket.create", "knowledge.view", "solution.view", ), "只读审计员": ( "ticket.view", "knowledge.view", "solution.view", "system.audit.view", ), }