LinkDesk/backend/debug_tasks_403.py

57 lines
1.8 KiB
Python

"""
Debug script to test tasks endpoint with admin/coordinator user
"""
import requests
BASE_URL = "http://localhost:8000"
SHOT_ID = 1
# Login
login_response = requests.post(
f"{BASE_URL}/auth/login",
json={"email": "admin@vfx.com", "password": "admin123"}
)
if login_response.status_code == 200:
token = login_response.json()["access_token"]
print(f"✓ Logged in successfully")
# Get user info
headers = {"Authorization": f"Bearer {token}"}
me_response = requests.get(f"{BASE_URL}/users/me", headers=headers)
if me_response.status_code == 200:
user = me_response.json()
print(f"User: {user['email']}")
print(f"Role: {user['role']}")
print(f"Is Admin: {user['is_admin']}")
# Try without trailing slash
print(f"\n--- Testing GET /tasks?shot_id={SHOT_ID} (no trailing slash) ---")
response1 = requests.get(
f"{BASE_URL}/tasks",
params={"shot_id": SHOT_ID},
headers=headers,
allow_redirects=False # Don't follow redirects
)
print(f"Status: {response1.status_code}")
print(f"Headers: {dict(response1.headers)}")
if response1.status_code in [301, 302, 307, 308]:
print(f"Redirect to: {response1.headers.get('location')}")
# Try with trailing slash
print(f"\n--- Testing GET /tasks/?shot_id={SHOT_ID} (with trailing slash) ---")
response2 = requests.get(
f"{BASE_URL}/tasks/",
params={"shot_id": SHOT_ID},
headers=headers
)
print(f"Status: {response2.status_code}")
if response2.status_code == 200:
tasks = response2.json()
print(f"✓ Found {len(tasks)} tasks")
else:
print(f"Response: {response2.text[:500]}")
else:
print(f"✗ Login failed: {login_response.status_code}")
print(login_response.text)