将接口级权限改为业务语言

1. 更新权限配置格式
   - 从 "METHOD:/path" 改为 "module:operation"
   - 例如: "subjects:create", "visits:update", "risk_issues:delete"
   - 更易理解和管理

2. 新增权限操作列表 API
   - GET /api/v1/api-permissions/operations
   - 返回所有权限操作及其描述

3. 更新前端权限管理界面
   - 显示业务语言的权限名称
   - 按模块和操作类型筛选
   - 改进用户体验

4. 修复导入错误
   - 更新 MODULE_TO_ENDPOINTS 为 OPERATION_TO_ENDPOINTS
   - 禁用 API 端点注册表初始化

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Cheng Zhou
2026-05-14 11:00:41 +08:00
parent 6eea6b35fd
commit 5327e00cf1
7 changed files with 319 additions and 312 deletions
+42
View File
@@ -20,6 +20,27 @@ from app.core.api_permissions import API_ENDPOINT_PERMISSIONS, PROJECT_PERMISSIO
router = APIRouter(prefix="/api-permissions", tags=["api-permissions"])
@router.get(
"/operations",
summary="获取系统中所有权限操作",
description="返回系统中所有权限操作及其描述",
)
async def list_api_operations() -> dict[str, list[dict]]:
"""获取所有权限操作"""
operations_list = [
{
"operation_key": key,
"module": config["module"],
"action": config["action"],
"description": config["description"],
"default_roles": config["default_roles"],
}
for key, config in API_ENDPOINT_PERMISSIONS.items()
]
return {"operations": operations_list}
@router.get(
"/endpoints",
summary="获取系统中所有已注册的API端点",
@@ -48,6 +69,27 @@ async def list_api_endpoints(
return {"endpoints": endpoints_list}
@router.get(
"/operations",
summary="获取系统中所有权限操作",
description="返回系统中所有权限操作及其描述",
)
async def list_api_operations() -> dict[str, list[dict]]:
"""获取所有权限操作"""
operations_list = [
{
"operation_key": key,
"module": config["module"],
"action": config["action"],
"description": config["description"],
"default_roles": config["default_roles"],
}
for key, config in API_ENDPOINT_PERMISSIONS.items()
]
return {"operations": operations_list}
@router.get(
"",
summary="获取项目的接口级权限矩阵",