import csv import os import streamlit as st from snowflake.snowpark import Session from backend.adapters.snowflake import get_current_user_name _PERMISSIONS_CSV = os.path.join( os.path.dirname(__file__), "..", "data", "permissions.csv" ) def _load_permissions() -> set[tuple[str, str]]: with open(_PERMISSIONS_CSV, newline="") as f: return { (row["username"].upper(), row["page"].upper()) for row in csv.DictReader(f) } def require_access(session: Session, page: str) -> None: current_user = get_current_user_name(session) has_access = (current_user.upper(), page.upper()) in _load_permissions() if not has_access: st.error("You don't have permission to access this page.") st.stop()