Files
track/backend/app/api/v1/endpoints/orders.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

41 lines
1.3 KiB
Python

"""生产订单 API 端点"""
from __future__ import annotations
import uuid
from fastapi import APIRouter, Depends, Query
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import selectinload
from app.core.database import get_db
from app.models.production_order import ProductionOrder
from app.schemas.order import OrderCreate, OrderResponse
from app.services.auth_service import get_current_user
router = APIRouter(prefix="/orders", tags=["订单管理"])
@router.get("/", response_model=list[OrderResponse])
async def list_orders(
skip: int = Query(0, ge=0),
limit: int = Query(50, ge=1, le=200),
db: AsyncSession = Depends(get_db),
):
result = await db.execute(
select(ProductionOrder).offset(skip).limit(limit).order_by(ProductionOrder.created_at.desc())
)
orders = result.scalars().all()
return [OrderResponse.model_validate(o) for o in orders]
@router.post("/", response_model=OrderResponse, status_code=201)
async def create_order(
data: OrderCreate,
db: AsyncSession = Depends(get_db),
current_user: dict = Depends(get_current_user),
):
order = ProductionOrder(**data.model_dump())
db.add(order)
await db.commit()
await db.refresh(order)
return OrderResponse.model_validate(order)