devportal2 / backend /database.py
akborana4's picture
Create backend/database.py
29de627 verified
import sqlite3
import os
DB_FILE = "devportal.db"
USERS_DIR = "user_spaces"
def init_db():
conn = sqlite3.connect(DB_FILE)
c = conn.cursor()
# Create users table
c.execute('''CREATE TABLE IF NOT EXISTS users
(username TEXT PRIMARY KEY, password TEXT, token TEXT, settings TEXT)''')
conn.commit()
conn.close()
# Ensure the master users directory exists
if not os.path.exists(USERS_DIR):
os.makedirs(USERS_DIR)
def get_user_dir(token: str) -> str:
"""Returns the absolute path to a specific user's secure folder based on their auth token."""
conn = sqlite3.connect(DB_FILE)
c = conn.cursor()
c.execute("SELECT username FROM users WHERE token=?", (token,))
row = c.fetchone()
conn.close()
if not row:
return None
username = row[0]
user_path = os.path.abspath(os.path.join(USERS_DIR, username))
# Auto-create if it got deleted
if not os.path.exists(user_path):
os.makedirs(user_path, exist_ok=True)
return user_path