@@ -885,7 +885,7 @@ def _parse_json(line) -> dict:
885
885
886
886
887
887
# ============================================================================
888
- def init_storages_api (org_ops , crawl_manager ):
888
+ def init_storages_api (org_ops , crawl_manager , user_dep : Callable ):
889
889
"""API for updating storage for an org"""
890
890
891
891
storage_ops = StorageOps (org_ops , crawl_manager )
@@ -913,23 +913,37 @@ def get_available_storages(org: Organization = Depends(org_owner_dep)):
913
913
"/custom-storage" , tags = ["organizations" ], response_model = AddedResponseName
914
914
)
915
915
async def add_custom_storage (
916
- storage : S3StorageIn , org : Organization = Depends (org_owner_dep )
916
+ storage : S3StorageIn ,
917
+ org : Organization = Depends (org_owner_dep ),
918
+ user : User = Depends (user_dep ),
917
919
):
920
+ if not user .is_superuser :
921
+ raise HTTPException (status_code = 403 , detail = "Not Allowed" )
922
+
918
923
return await storage_ops .add_custom_storage (storage , org )
919
924
920
925
@router .delete (
921
926
"/custom-storage/{name}" , tags = ["organizations" ], response_model = DeletedResponse
922
927
)
923
928
async def remove_custom_storage (
924
- name : str , org : Organization = Depends (org_owner_dep )
929
+ name : str ,
930
+ org : Organization = Depends (org_owner_dep ),
931
+ user : User = Depends (user_dep ),
925
932
):
933
+ if not user .is_superuser :
934
+ raise HTTPException (status_code = 403 , detail = "Not Allowed" )
935
+
926
936
return await storage_ops .remove_custom_storage (name , org )
927
937
928
938
@router .post ("/storage" , tags = ["organizations" ], response_model = UpdatedResponse )
929
939
async def update_storage_ref (
930
940
storage : OrgStorageRef ,
931
941
org : Organization = Depends (org_owner_dep ),
942
+ user : User = Depends (user_dep ),
932
943
):
944
+ if not user .is_superuser :
945
+ raise HTTPException (status_code = 403 , detail = "Not Allowed" )
946
+
933
947
return await storage_ops .update_storage_ref (storage , org )
934
948
935
949
@router .post (
@@ -938,7 +952,11 @@ async def update_storage_ref(
938
952
async def update_storage_replica_refs (
939
953
storage : OrgStorageReplicaRefs ,
940
954
org : Organization = Depends (org_owner_dep ),
955
+ user : User = Depends (user_dep ),
941
956
):
957
+ if not user .is_superuser :
958
+ raise HTTPException (status_code = 403 , detail = "Not Allowed" )
959
+
942
960
return await storage_ops .update_storage_replica_refs (storage , org )
943
961
944
962
return storage_ops
0 commit comments