File size: 1,032 Bytes
8775f6b b565515 8b49170 d3d4f25 8775f6b d3d4f25 8775f6b b565515 8775f6b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# modules/ui/views/login_view.py
import gradio as gr
from ...auth.auth import authenticate_user
def create_login_view():
"""Crea la vista de login"""
with gr.Blocks() as view:
username = gr.Textbox(label="Usuario")
password = gr.Textbox(label="Contraseña", type="password")
message = gr.Markdown()
login_button = gr.Button("Iniciar Sesión", variant="primary")
# Asignar los componentes al view para acceso externo
view.username = username
view.role = gr.State("") # Para almacenar el rol después del login
def handle_login(user, pwd):
success, role = authenticate_user(user, pwd)
if success:
view.role.value = role
return user, role, ""
return None, None, "Credenciales incorrectas"
login_button.click(
fn=handle_login,
inputs=[username, password],
outputs=[username, view.role, message]
)
return view, login_button |