62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Debug the organization switch error.
|
|
"""
|
|
|
|
import json
|
|
import urllib.request
|
|
import urllib.parse
|
|
|
|
API_BASE = "http://sf_api:8000/api/v1"
|
|
EMAIL = "tester_pro@profibot.hu"
|
|
PASSWORD = "Password123!"
|
|
|
|
# Login
|
|
print("Logging in...")
|
|
data = urllib.parse.urlencode({
|
|
'username': EMAIL,
|
|
'password': PASSWORD
|
|
}).encode('utf-8')
|
|
|
|
req = urllib.request.Request(f"{API_BASE}/auth/login", data=data, method='POST')
|
|
req.add_header('Content-Type', 'application/x-www-form-urlencoded')
|
|
|
|
try:
|
|
with urllib.request.urlopen(req) as response:
|
|
response_data = json.loads(response.read().decode('utf-8'))
|
|
token = response_data.get('access_token')
|
|
print(f"Token: {token[:30]}...")
|
|
|
|
# Try switch with different payload formats
|
|
test_payloads = [
|
|
{"organization_id": 21},
|
|
{"organization_id": "21"},
|
|
{"org_id": 21},
|
|
{"id": 21}
|
|
]
|
|
|
|
for payload in test_payloads:
|
|
print(f"\nTrying payload: {payload}")
|
|
data = json.dumps(payload).encode('utf-8')
|
|
req = urllib.request.Request(
|
|
f"{API_BASE}/users/me/active-organization",
|
|
data=data,
|
|
method='PATCH',
|
|
headers={
|
|
'Authorization': f'Bearer {token}',
|
|
'Content-Type': 'application/json'
|
|
}
|
|
)
|
|
|
|
try:
|
|
with urllib.request.urlopen(req) as resp:
|
|
print(f"Success! Status: {resp.status}")
|
|
print(f"Response: {resp.read().decode('utf-8')[:200]}")
|
|
except urllib.error.HTTPError as e:
|
|
print(f"HTTP Error {e.code}: {e.reason}")
|
|
print(f"Response: {e.read().decode('utf-8')}")
|
|
except Exception as e:
|
|
print(f"Error: {e}")
|
|
|
|
except Exception as e:
|
|
print(f"Login error: {e}") |