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