Spaces:
Sleeping
Sleeping
| """ | |
| 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")] | |