diff --git a/docs/static/frigate-api.yaml b/docs/static/frigate-api.yaml index ff34021df2..18a75df5da 100644 --- a/docs/static/frigate-api.yaml +++ b/docs/static/frigate-api.yaml @@ -1476,7 +1476,7 @@ paths: - Classification summary: Get custom classification attributes description: |- - **Access:** Admin role required. + **Access:** Authenticated user with access to all cameras. Returns custom classification attributes for a given object type. Only includes models with classification_type set to 'attribute'. @@ -1510,8 +1510,8 @@ paths: schema: $ref: '#/components/schemas/HTTPValidationError' security: - - frigateAdminAuth: [] - x-required-role: admin + - frigateUserAuth: [] + x-required-role: all_cameras /classification/{name}/train: get: tags: diff --git a/frigate/api/auth.py b/frigate/api/auth.py index 1e4524e262..fa51d6f328 100644 --- a/frigate/api/auth.py +++ b/frigate/api/auth.py @@ -85,6 +85,7 @@ def require_admin_by_default(): "/sub_labels", "/plus/models", "/recognized_license_plates", + "/classification/attributes", "/timeline", "/timeline/hourly", "/recordings/storage", diff --git a/frigate/api/classification.py b/frigate/api/classification.py index 5ddc3d34c7..6caa745254 100644 --- a/frigate/api/classification.py +++ b/frigate/api/classification.py @@ -14,7 +14,7 @@ from fastapi.responses import JSONResponse from peewee import DoesNotExist from playhouse.shortcuts import model_to_dict -from frigate.api.auth import require_role +from frigate.api.auth import require_full_camera_access, require_role from frigate.api.defs.request.classification_body import ( AudioTranscriptionBody, DeleteFaceImagesBody, @@ -741,6 +741,7 @@ def get_classification_dataset(name: str): @router.get( "/classification/attributes", + dependencies=[Depends(require_full_camera_access)], summary="Get custom classification attributes", description="""Returns custom classification attributes for a given object type. Only includes models with classification_type set to 'attribute'.