From 53de9cc56a262cf60f54eb3a603252ce79791bfd Mon Sep 17 00:00:00 2001 From: Albert Snow Date: Fri, 6 Sep 2024 17:06:25 -0500 Subject: [PATCH] skip auth config added --- gen3userdatalibrary/routes.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gen3userdatalibrary/routes.py b/gen3userdatalibrary/routes.py index 821f5bac..1b1c767e 100644 --- a/gen3userdatalibrary/routes.py +++ b/gen3userdatalibrary/routes.py @@ -5,7 +5,6 @@ from fastapi import APIRouter, Depends, HTTPException, Request from gen3authz.client.arborist.errors import ArboristError -from fastapi.responses import JSONResponse from jsonschema.exceptions import ValidationError from pydantic import BaseModel from sqlalchemy.exc import IntegrityError @@ -121,7 +120,21 @@ async def create_user_list( """ user_id = await get_user_id(request=request) - # TODO dynamically create user policy + # TODO dynamically create user policy, ROUGH UNTESTED VERSION: need to verify + if not config.DEBUG_SKIP_AUTH: + # make sure the user exists in Arborist + # IMPORTANT: This is using the user's unique subject ID + request.app.state.arborist_client.create_user_if_not_exist(user_id) + + resource = f"/users/{user_id}/user-data-library" + + try: + logging.debug("attempting to update arborist resource: {}".format(resource)) + request.app.state.arborist_client.update_resource("/", resource, merge=True) + except ArboristError as e: + logging.error(e) + # keep going; maybe just some conflicts from things existing already + # TODO: Unsure if this is safe, we might need to actually error here? await authorize_request( request=request,