# retoor <retoor@molodetz.nl>
from fastapi import Request
from fastapi.responses import RedirectResponse
from devplacepy.database import get_table
from devplacepy.responses import wants_json, json_error
from devplacepy.utils import require_user, not_found
def resolve_customization_target(request: Request, username: str):
current_user = require_user(request)
target = get_table("users").find_one(username=username)
if not target:
raise not_found("User not found")
is_owner = current_user["uid"] == target["uid"]
is_admin = current_user.get("role") == "Admin"
if not (is_owner or is_admin):
if wants_json(request):
return None, json_error(403, "Not allowed")
return None, RedirectResponse(url=f"/profile/{username}", status_code=302)
return target, None