SYNRG / src /ui /auth.py
cryogenic22's picture
Update src/ui/auth.py
1923999 verified
"""Authentication module for Robata CRM"""
import streamlit as st
def check_authentication() -> bool:
"""Check if user is authenticated and handle login if not"""
if 'user' not in st.session_state:
return show_login()
return True
def show_login() -> bool:
"""Show login form and handle authentication"""
st.title("🔐 Login to Robata CRM")
# Create three columns for centering
_, center_col, _ = st.columns([1, 2, 1])
with center_col:
st.markdown("""### Demo Login Credentials:
**Sales Representative**
- Email: sales@robata.com
- Password: demo123
**Regional Lead**
- Email: lead@robata.com
- Password: demo123
**Head of Sales**
- Email: head@robata.com
- Password: demo123
""")
# Login form
with st.form("login_form"):
email = st.text_input("Email")
password = st.text_input("Password", type="password")
submitted = st.form_submit_button("Login")
if submitted:
if authenticate_user(email, password):
st.success("Login successful!")
return True
else:
st.error("Invalid credentials")
return False
def authenticate_user(email: str, password: str) -> bool:
"""Authenticate user credentials"""
# Demo users with their roles
demo_users = {
"sales@robata.com": {
"password": "demo123",
"name": "Alex Thompson",
"role": "sales_rep",
"company": "Robata Inc",
"id": "sales_1",
"department": "Sales",
"title": "Senior Sales Executive"
},
"lead@robata.com": {
"password": "demo123",
"name": "Sarah Chen",
"role": "regional_lead",
"company": "Robata Inc",
"id": "lead_1",
"department": "Sales",
"title": "Regional Sales Director - EMEA"
},
"head@robata.com": {
"password": "demo123",
"name": "James Wilson",
"role": "head_of_sales",
"company": "Robata Inc",
"id": "head_1",
"department": "Sales",
"title": "Head of Sales"
}
}
if email in demo_users and password == demo_users[email]["password"]:
# Store user info in session state
st.session_state.user = {
"id": demo_users[email]["id"],
"name": demo_users[email]["name"],
"role": demo_users[email]["role"],
"company": demo_users[email]["company"],
"department": demo_users[email]["department"],
"title": demo_users[email]["title"],
"email": email
}
return True
return False