1 import streamlit as st 2 from streamlit_authenticator import Authenticate 3 from config.settings import settings 4 from repositories.user_repo import UserRepo +5 from models.db import init_db + +# 1) Initialize the database (create tables) before anything else +6 init_db() 7 user_repo = UserRepo(settings.database_url) 8 def init_auth(): 9 users = user_repo.get_all_users() 10 creds = {u.username: {"name": u.full_name, "password": u.hashed_password} for u in users} 11 return Authenticate( 12 credentials=creds, 13 cookie_name="quantum_healthcare_auth", 14 key=settings.secret_key, 15 cookie_expiry_days=1, 16 ) 17 18 authenticator = init_auth() 19 20 def require_login(): 21 name, authentication_status, username = authenticator.login("Login", "sidebar") 22 if not authentication_status: 23 st.stop() 24 return username