ministerchief's picture
Upload 73 files
1e2e946 verified
Raw
History Blame Contribute Delete
814 Bytes
"""
utils/db.py — SQLite connection + tenant scoping helpers.
Shared by app.py and all route blueprints so every query uses the same
WAL-enabled connection settings and the same organization scoping rule.
"""
import sqlite3
from flask import session
DB_PATH = "instance/enterprise_assetqr.db"
def get_db():
"""Open a WAL-mode SQLite connection with dict-style rows."""
db = sqlite3.connect(DB_PATH, timeout=30)
db.row_factory = sqlite3.Row
db.execute("PRAGMA journal_mode=WAL")
return db
def scoped_where():
"""
Organization scoping for every query:
super_admin sees everything; everyone else only their own org.
Returns (where_clause, args).
"""
if session.get("role") == "super_admin":
return "1=1", []
return "org_id=?", [session.get("org_id")]