fix(backend): end_task 和 complete_task 补齐权限校验

- end_task 新增 operator_role 参数 + _check_permission 调用
- complete_task 新增 operator_role 参数 + _check_permission 调用
- 两个端点均注入 current_user Depends(get_current_user)
- 非任务负责人且非管理员/主管调用时返回 403
This commit is contained in:
2026-08-11 10:13:40 +08:00
parent de47d27cfb
commit d40a8d480e
2 changed files with 18 additions and 4 deletions

View File

@ -84,6 +84,7 @@ async def complete_task_endpoint(
task_id: str,
request: TaskCompleteRequest,
db: AsyncSession = Depends(get_db),
current_user: dict = Depends(get_current_user),
):
"""
**核心接口:完成任务 + 可选创建下一步任务(转交)**
@ -100,7 +101,8 @@ async def complete_task_endpoint(
- 完成后自动创建下一步任务并指定负责人
"""
return await task_service.complete_task(
db, uuid.UUID(task_id), request
db, uuid.UUID(task_id), request,
operator_role=current_user.get("role"),
)
@ -113,13 +115,17 @@ async def end_task_endpoint(
task_id: str,
operator_id: str | None = Query(None),
db: AsyncSession = Depends(get_db),
current_user: dict = Depends(get_current_user),
):
"""
**结束当前分支:标记任务为 COMPLETED不创建下游任务。**
用于工人认为工序已完结、无需转交下一人的场景。
"""
return await task_service.end_task(db, uuid.UUID(task_id), operator_id)
return await task_service.end_task(
db, uuid.UUID(task_id), operator_id,
operator_role=current_user.get("role"),
)
# ============================================================