diff --git a/atlas/api.py b/atlas/api.py index e21f64d8..933db77b 100644 --- a/atlas/api.py +++ b/atlas/api.py @@ -120,7 +120,7 @@ class CaseSchema(ModelSchema): fields = ["id", "title"] -@router.post("/upload_dicom", auth=TokenAuth()) +@router.post("/upload_dicom", auth=BearerAuth()) def upload_dicom(request, files: List[UploadedFile] = File(...)): uploaded = [] duplicate = [] @@ -153,7 +153,7 @@ def upload_dicom(request, files: List[UploadedFile] = File(...)): } -@router.post("/generate_image_hash", auth=TokenAuth()) +@router.post("/generate_image_hash", auth=BearerAuth()) def generate_image_hash(request, id: int): s = SeriesImage.objects.get(pk=id) s.generate_hashes() @@ -165,7 +165,7 @@ def generate_image_hash(request, id: int): } -@router.post("/clear_dicoms", auth=TokenAuth()) +@router.post("/clear_dicoms", auth=BearerAuth()) def clear_dicoms(request): if "selection" in request.POST: dicoms = UncategorisedDicom.objects.filter( @@ -180,7 +180,7 @@ def clear_dicoms(request): return True -@router.get("/uncategorised_dicoms", auth=TokenAuth()) +@router.get("/uncategorised_dicoms", auth=BearerAuth()) def uncategorised_dicoms(request): dicoms = UncategorisedDicom.objects.filter(user=request.user) @@ -279,7 +279,7 @@ def import_dicoms_helper(request, case_id: int | None = None): @router.post( - "/import_dicoms", auth=TokenAuth(), response=List[Tuple[SeriesSchema, str]] + "/import_dicoms", auth=BearerAuth(), response=List[Tuple[SeriesSchema, str]] ) def import_dicoms(request): return import_dicoms_helper(request) @@ -287,14 +287,14 @@ def import_dicoms(request): @router.post( "/import_dicoms/{case_id}", - auth=TokenAuth(), + auth=BearerAuth(), response=List[Tuple[SeriesSchema, str]], ) def import_dicoms_case(request, case_id: int): return import_dicoms_helper(request, case_id=case_id) -@router.post("/upload_dicom_case/{case_id}", auth=TokenAuth(), response=List[Tuple[SeriesSchema, str]]) +@router.post("/upload_dicom_case/{case_id}", auth=BearerAuth(), response=List[Tuple[SeriesSchema, str]]) def upload_dicom_case(request, case_id: int, files: List[UploadedFile] = File(...)): """Upload DICOM files and immediately import them into the given case. @@ -314,12 +314,12 @@ def upload_dicom_case(request, case_id: int, files: List[UploadedFile] = File(.. return import_dicoms_helper(request, case_id=case_id) -@router.get("/orphan_series", auth=TokenAuth(), response=List[SeriesSchema]) +@router.get("/orphan_series", auth=BearerAuth(), response=List[SeriesSchema]) def orphan_series(request): return request.user.series.filter(case=None) -@router.get("/series_remove_duplicate_images", auth=TokenAuth()) +@router.get("/series_remove_duplicate_images", auth=BearerAuth()) def series_remove_duplicate_images(request, series_id: int): series = get_object_or_404(Series, pk=series_id) @@ -336,14 +336,15 @@ def series_remove_duplicate_images(request, series_id: int): return len(dupes) -@router.get("/get_cases_user", auth=TokenAuth(), response=List[CaseSchema]) +@router.get("/get_cases_user", auth=BearerAuth(), response=List[CaseSchema]) def get_cases_user(request): return Case.objects.filter(author=request.user) -@router.get("/get_cases_available", auth=TokenAuth(), response=List[CaseSchema]) +@router.get("/get_cases_available", auth=BearerAuth(), response=List[CaseSchema]) def get_cases_available(request): """Return cases available to the authenticated user (via get_cases_available_to_user).""" + logger.error(f"Getting cases available to user {request.user}") qs = get_cases_available_to_user(request.user) return qs.order_by('-created_date')[:200] @@ -358,7 +359,7 @@ class APITokenOut(Schema): last_used: str | None = None -@router.get("/api_tokens", auth=TokenAuth(), response=List[APITokenOut]) +@router.get("/api_tokens", auth=BearerAuth(), response=List[APITokenOut]) def list_api_tokens(request): tokens = APIToken.objects.filter(user=request.user).order_by("-created") out = [] @@ -505,7 +506,7 @@ def token_check(request): # return {"token": token, "id": obj.id} -@router.post("/api_tokens/{token_id}/revoke", auth=TokenAuth()) +@router.post("/api_tokens/{token_id}/revoke", auth=BearerAuth()) def revoke_api_token(request, token_id: int): try: t = APIToken.objects.get(pk=token_id, user=request.user) @@ -516,7 +517,7 @@ def revoke_api_token(request, token_id: int): return {"status": "revoked"} -@router.get("/check_image_hash/{hash}", auth=TokenAuth()) +@router.get("/check_image_hash/{hash}", auth=BearerAuth()) def check_image_hash(request, hash: str): try: series_image = SeriesImage.objects.get(image_blake3_hash=hash) @@ -531,7 +532,7 @@ def check_image_hash(request, hash: str): return data -@router.post("/check_image_hashes/", auth=TokenAuth()) +@router.post("/check_image_hashes/", auth=BearerAuth()) def check_images_hashes(request, hashes: List[str]): """Checks a list of image hashes and returns the series id / url if found @@ -579,13 +580,13 @@ def check_images_hashes(request, hashes: List[str]): # print(series_image) -@router.get("/view_dicom_tags/{hash}", auth=TokenAuth()) +@router.get("/view_dicom_tags/{hash}", auth=BearerAuth()) def view_dicom_tags(request, hash: str): item = SeriesImage.objects.get(image_blake3_hash=hash) return item.get_dicom_json() -@router.get("/series_split_by_dicom_tag/{series_id}/{dicom_tag}", auth=TokenAuth()) +@router.get("/series_split_by_dicom_tag/{series_id}/{dicom_tag}", auth=BearerAuth()) def series_split_by_tag(request, series_id: int, dicom_tag: str): series = get_object_or_404(Series, pk=series_id) @@ -633,7 +634,7 @@ def series_split_by_tag(request, series_id: int, dicom_tag: str): return new_series -@router.get("/split_order_by_dicom_tag/{series_id}/{dicom_tag}", auth=TokenAuth()) +@router.get("/split_order_by_dicom_tag/{series_id}/{dicom_tag}", auth=BearerAuth()) def series_order_by_tag(request, series_id: int, dicom_tag: str): series = get_object_or_404(Series, pk=series_id)