import streamlit as st from streamlit_authenticator import Authenticate from config.settings import settings from repositories.user_repo import UserRepo from models.db import init_db # Ensure the DB tables exist before we fetch users init_db() # Instantiate your user repository user_repo = UserRepo(settings.database_url) def init_auth(): users = user_repo.get_all_users() creds = { u.username: {"name": u.full_name, "password": u.hashed_password} for u in users } return Authenticate( credentials=creds, cookie_name="quantum_healthcare_auth", key=settings.secret_key, cookie_expiry_days=1, ) # Create the authenticator at import time authenticator = init_auth() def require_login(): name, authentication_status, username = authenticator.login("Login", "sidebar") if not authentication_status: st.stop() return username