import streamlit as st from utils import init_supabase def get_user_by_username(username): """Get user from database by username""" supabase = init_supabase() if not supabase: return None try: # First try the function response = supabase.rpc('get_user_by_username', {'username_param': username}).execute() if response.data: return response.data[0] # Fallback: query the table directly response = supabase.table('users').select('*').eq('username', username).execute() if response.data: return response.data[0] return None except Exception as e: st.error(f"Database error: {str(e)}") return None def show_login_page(): """Show a simple custom login page""" st.title("🎭 Cura Learning Debate Class") st.markdown("### Welcome to Debate Class!") st.markdown("Please log in to access your course materials.") # Simple login form with st.form("login_form"): username = st.text_input("Username") password = st.text_input("Password", type="password") submit_button = st.form_submit_button("Login") if submit_button: if check_credentials(username, password): st.session_state.authenticated = True st.session_state.username = username st.session_state.name = get_user_name(username) st.success(f'Welcome {st.session_state.name}!') st.rerun() else: st.error('Invalid username or password') def check_credentials(username, password): """Check if username and password are valid""" if not username or not password: return False # Get user from database user = get_user_by_username(username) if user: # Get the password from the database (plain text for now) stored_password = user.get('password') if stored_password: # Compare passwords directly (plain text) return password == stored_password return False def get_user_name(username): """Get the display name for a username""" user = get_user_by_username(username) if user: return user.get('full_name', username) return username def handle_logout(): """Handle logout functionality""" if st.button("Logout"): st.session_state.authenticated = False st.session_state.username = None st.session_state.name = None st.rerun() def is_authenticated(): """Check if user is authenticated""" return st.session_state.get('authenticated', False)