Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from src.services.auth_service import authenticate_user | |
| def render_login(db_path: str, auth_state: gr.State): | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.Markdown("## Login") | |
| username = gr.Textbox(label="Username") | |
| password = gr.Textbox(label="Password", type="password") | |
| login_btn = gr.Button("Login", variant="primary") | |
| logout_btn = gr.Button("Logout", visible=False) | |
| status = gr.Markdown("π Not logged in") | |
| def do_login(u, p): | |
| user = authenticate_user(db_path, u, p) | |
| if not user: | |
| return None, "β Invalid credentials", False, True | |
| return ( | |
| user, | |
| f"β Logged in as **{user['username']}**", | |
| True, | |
| False, | |
| ) | |
| def do_logout(): | |
| return None, "π Logged out", False, True | |
| login_btn.click( | |
| do_login, | |
| inputs=[username, password], | |
| outputs=[auth_state, status, logout_btn, login_btn], | |
| ) | |
| logout_btn.click( | |
| do_logout, | |
| outputs=[auth_state, status, logout_btn, login_btn], | |
| ) | |