Files
track/backend/app/api/v1/endpoints/records.py
duxingchen 3a6ab7d756 security: 补全剩余端点鉴权 + 移除硬编码管理员后门
1. 鉴权补全
   - orders.py: create_order 补全 Depends(get_current_user)
   - print.py: print_execute 和 update_printer_config 补全鉴权
   - records.py: update_record 和 delete_record 补全鉴权

2. 安全加固
   - auth_service.py: 移除硬编码超级管理员(IRIS/123321)后门
   - 所有用户统一通过MOM sys_user scrypt密码验证登录
2026-08-12 12:04:40 +08:00

52 lines
1.7 KiB
Python

"""任务记录 CRUD — 编辑 / 删除"""
import json
import uuid
from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from app.core.database import get_db
from app.models.task import TaskRecord
from app.schemas.task import TaskRecordCreate, TaskRecordResponse
from app.services.auth_service import get_current_user
router = APIRouter(prefix="/records", tags=["任务记录"])
async def _get_record_or_404(db: AsyncSession, record_id: int) -> TaskRecord:
result = await db.execute(select(TaskRecord).where(TaskRecord.id == record_id))
record = result.scalar_one_or_none()
if not record:
raise HTTPException(status_code=404, detail=f"记录不存在: {record_id}")
return record
@router.put("/{record_id}", response_model=TaskRecordResponse)
async def update_record(
record_id: int,
data: TaskRecordCreate,
db: AsyncSession = Depends(get_db),
current_user: dict = Depends(get_current_user),
):
"""更新任务记录(备注+图片)"""
record = await _get_record_or_404(db, record_id)
record.remark = data.remark or None
record.images = json.dumps(data.images) if data.images else None
await db.commit()
await db.refresh(record)
# 手动反序列化 images
return TaskRecordResponse.model_validate(record)
@router.delete("/{record_id}")
async def delete_record(
record_id: int,
db: AsyncSession = Depends(get_db),
current_user: dict = Depends(get_current_user),
):
"""删除任务记录"""
record = await _get_record_or_404(db, record_id)
await db.delete(record)
await db.commit()
return {"message": "记录已删除"}