Venus / src /ui /login_ui.py
MetiMiester's picture
Update src/ui/login_ui.py
24ec4fc verified
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],
)