Files
ctms/backend/app/api/v1/overview.py
T
Cheng Zhou 939fc70532 权限管理:接入项目级权限矩阵
新增项目级角色权限矩阵,覆盖 PM、CRA、PV、IMP、QA 等项目角色,并通过迁移表持久化各业务模块的读写权限。

后端将参与者、合同费用、物资、启动、里程碑、风险问题、监查稽查、FAQ、共享库、文件版本等接口接入矩阵校验,修复审计日志导出权限和登录 502 的依赖导入问题。

前端新增权限管理页面和项目路由权限映射,按矩阵控制导航显示、直接访问拦截、操作按钮启停,并限制管理后台仅 admin 和授权 PM 可进入。

补充后端权限归一化与接口静态测试、前端路由/权限工具/权限管理页面/工作台等回归测试。
2026-05-13 08:58:03 +08:00

36 lines
968 B
Python

"""项目概览API路由"""
import uuid
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.deps import get_db_session, require_study_permission
from app.crud import overview as overview_crud
from app.schemas.overview import ProjectOverviewResponse
router = APIRouter()
@router.get(
"/overview",
response_model=ProjectOverviewResponse,
dependencies=[Depends(require_study_permission("project_overview", "read"))],
)
async def get_project_overview(
study_id: uuid.UUID,
db: AsyncSession = Depends(get_db_session),
) -> ProjectOverviewResponse:
"""
获取项目概览数据
返回项目各中心的进度情况,包括:
- 机构立项状态
- 伦理审批状态
- 合同签署状态
- 启动会状态
- 入组进度
- 月度入组统计
"""
data = await overview_crud.get_project_overview(db, study_id)
return ProjectOverviewResponse(**data)