fix(measurements): export CSV ammette admin senza ruolo esplicito (#36 punto 3)

Il controllo ruolo di GET /api/measurements/export/csv ignorava is_admin:
un admin senza MeasurementTec/Metrologist assegnato prendeva 403, a
differenza di ogni altro endpoint che passa da require_role (ruolo o admin).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 22:39:10 +02:00
parent 3f70f99a40
commit 1d5f24510c
2 changed files with 34 additions and 4 deletions
+5 -2
View File
@@ -274,8 +274,11 @@ async def export_measurements_csv(
db: AsyncSession = Depends(get_db),
):
"""Export measurements to CSV with configurable delimiter and decimal separator."""
# Check user has MeasurementTec or Metrologist role
if not (user.has_role("MeasurementTec") or user.has_role("Metrologist")):
# Check user has MeasurementTec or Metrologist role, same as require_role: an
# admin with no explicit role assigned is still let through (#36 point 3).
if not (
user.has_role("MeasurementTec") or user.has_role("Metrologist") or user.is_admin
):
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail="MeasurementTec or Metrologist role required",