feat(server): admin-gate GET /requests

This commit is contained in:
Mgeeeek
2026-05-13 21:03:38 +05:30
parent 240168aefe
commit 739402946c
2 changed files with 31 additions and 3 deletions
+3 -3
View File
@@ -6,9 +6,9 @@ from pydantic import BaseModel
from sqlalchemy import select from sqlalchemy import select
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from auth import require_auth from auth import require_admin
from db import get_db from db import get_db
from models import RequestLog, User from models import RequestLog
router = APIRouter(prefix="/requests", tags=["requests"]) router = APIRouter(prefix="/requests", tags=["requests"])
@@ -30,7 +30,7 @@ API_KEY_AUTH_TYPES = ("api_key", "admin_api_key")
@router.get("", response_model=list[RequestLogItem]) @router.get("", response_model=list[RequestLogItem])
def list_requests( def list_requests(
user: User = Depends(require_auth), _admin=Depends(require_admin),
db: Session = Depends(get_db), db: Session = Depends(get_db),
limit: int = Query(default=50, ge=1, le=200), limit: int = Query(default=50, ge=1, le=200),
): ):
+28
View File
@@ -157,3 +157,31 @@ def test_delete_entity_member_forbidden(client, auth_member_header):
def test_delete_entity_no_auth_unauthorized(client): def test_delete_entity_no_auth_unauthorized(client):
response = client.delete("/entities/user/alice") response = client.delete("/entities/user/alice")
assert response.status_code == 401 assert response.status_code == 401
# --- GET /requests ---
def test_get_requests_admin_jwt(client, auth_admin_header):
response = client.get("/requests", headers=auth_admin_header)
assert response.status_code == 200
def test_get_requests_admin_api_key(client, admin_api_key_env):
response = client.get("/requests", headers=admin_api_key_env)
assert response.status_code == 200
def test_get_requests_auth_disabled(client, auth_disabled_env):
response = client.get("/requests")
assert response.status_code == 200
def test_get_requests_member_forbidden(client, auth_member_header):
response = client.get("/requests", headers=auth_member_header)
assert response.status_code == 403
def test_get_requests_no_auth_unauthorized(client):
response = client.get("/requests")
assert response.status_code == 401