LinkDesk/backend/debug_episode_access.py

52 lines
1.8 KiB
Python

"""
Debug script to check episode access issue
"""
import sqlite3
conn = sqlite3.connect('backend/vfx_project_management.db')
cursor = conn.cursor()
# Check if episode 2 exists
print("=== Checking Episode 2 ===")
cursor.execute('SELECT id, name, project_id FROM episodes WHERE id = 2')
episode = cursor.fetchone()
if episode:
print(f"Episode found: ID={episode[0]}, Name={episode[1]}, Project ID={episode[2]}")
project_id = episode[2]
# Check if admin user is a member of this project
print(f"\n=== Checking Project {project_id} Membership ===")
cursor.execute('''
SELECT u.id, u.email, u.role, pm.project_id
FROM users u
LEFT JOIN project_members pm ON u.id = pm.user_id AND pm.project_id = ?
WHERE u.email = "admin@vfx.com"
''', (project_id,))
user_info = cursor.fetchone()
print(f"User ID: {user_info[0]}, Email: {user_info[1]}, Role: {user_info[2]}, Project Member: {user_info[3]}")
if user_info[3] is None:
print(f"\n⚠️ User is NOT a member of project {project_id}")
print("This is why the 403 error occurs!")
# Add user to project
print(f"\nAdding user to project {project_id}...")
cursor.execute('''
INSERT INTO project_members (user_id, project_id, department_role)
VALUES (?, ?, NULL)
''', (user_info[0], project_id))
conn.commit()
print("✓ User added to project")
else:
print(f"\n✓ User is already a member of project {project_id}")
else:
print("Episode 2 not found!")
# List all episodes
print("\n=== All Episodes ===")
cursor.execute('SELECT id, name, project_id FROM episodes')
for ep in cursor.fetchall():
print(f" Episode {ep[0]}: {ep[1]} (Project {ep[2]})")
conn.close()