Добавлен защищённый список инстансов

This commit is contained in:
2026-08-09 14:31:11 +03:00
parent 3d770ba0f5
commit 6e77d3818e
+24
View File
@@ -0,0 +1,24 @@
from fastapi import APIRouter, Depends
from sqlalchemy import select
from sqlalchemy.orm import Session
from .. import models, schemas
from ..database import get_db
from ..deps import get_current_user
router = APIRouter(prefix="/instances", tags=["instances"])
@router.get("", response_model=list[schemas.InstanceOut])
def list_instances(
db: Session = Depends(get_db),
user: models.User = Depends(get_current_user),
):
"""Клиент видит только свои инстансы, администратор — все."""
query = select(models.Instance).where(
models.Instance.status != models.InstanceStatus.deleted
)
if user.role != models.UserRole.admin:
query = query.where(models.Instance.owner_id == user.id)
query = query.order_by(models.Instance.created_at.desc())
return list(db.scalars(query))