mgbam commited on
Commit
5fb2d40
·
verified ·
1 Parent(s): 2e92bef

Update services/auth.py

Browse files
Files changed (1) hide show
  1. services/auth.py +33 -28
services/auth.py CHANGED
@@ -1,28 +1,33 @@
1
- 1 import streamlit as st
2
- 2 from streamlit_authenticator import Authenticate
3
- 3 from config.settings import settings
4
- 4 from repositories.user_repo import UserRepo
5
- +5 from models.db import init_db
6
- +
7
- +# 1) Initialize the database (create tables) before anything else
8
- +6 init_db()
9
-
10
- 7 user_repo = UserRepo(settings.database_url)
11
-
12
- 8 def init_auth():
13
- 9 users = user_repo.get_all_users()
14
- 10 creds = {u.username: {"name": u.full_name, "password": u.hashed_password} for u in users}
15
- 11 return Authenticate(
16
- 12 credentials=creds,
17
- 13 cookie_name="quantum_healthcare_auth",
18
- 14 key=settings.secret_key,
19
- 15 cookie_expiry_days=1,
20
- 16 )
21
- 17
22
- 18 authenticator = init_auth()
23
- 19
24
- 20 def require_login():
25
- 21 name, authentication_status, username = authenticator.login("Login", "sidebar")
26
- 22 if not authentication_status:
27
- 23 st.stop()
28
- 24 return username
 
 
 
 
 
 
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
6
+
7
+ # Ensure the DB tables exist before we fetch users
8
+ init_db()
9
+
10
+ # Instantiate your user repository
11
+ user_repo = UserRepo(settings.database_url)
12
+
13
+ def init_auth():
14
+ users = user_repo.get_all_users()
15
+ creds = {
16
+ u.username: {"name": u.full_name, "password": u.hashed_password}
17
+ for u in users
18
+ }
19
+ return Authenticate(
20
+ credentials=creds,
21
+ cookie_name="quantum_healthcare_auth",
22
+ key=settings.secret_key,
23
+ cookie_expiry_days=1,
24
+ )
25
+
26
+ # Create the authenticator at import time
27
+ authenticator = init_auth()
28
+
29
+ def require_login():
30
+ name, authentication_status, username = authenticator.login("Login", "sidebar")
31
+ if not authentication_status:
32
+ st.stop()
33
+ return username