File size: 1,887 Bytes
640ac93
 
 
 
 
 
c11624a
640ac93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1aee7f2
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#from data import usuarios
import gradio as gr
import sulkuPypi
import time
import ast 

def authenticate(username, password) :

    print("3.- Entré a authenticate...")    
        
    #Future: Obten el dict usuarios desde la API no localmente en ésta app.
    cadena_usuarios = sulkuPypi.getData()
    
    # Convertir la cadena en una lista de tuplas
    print("Ahora voy a convertir la cadena de usuarios en una lista: ")
    lista_usuarios = ast.literal_eval(cadena_usuarios)        
        
    for u, p, f in lista_usuarios:
        #Si el usuario y la contraseña son correctas...
        if username == u and password == p:
            #Agrego el nombre del usuario al estado general.
            gr.State.usuario = username
            #Bienvenida al usuario...
            print("Welcome 182:", gr.State.usuario)
            if f == "new":
                print("Usuario Nuevo...")
            else:
                print("Usuario Normal...")

            #Capsule es el usuario encriptado que enviarás a la API de Sulku.
            #El encriptador ahora será parte de Sulku, porque es una herramienta que se requiere para...
            #...las comunicaciones con Sulku.

            capsule = sulkuPypi.encripta(gr.State.usuario).decode("utf-8") #decode es para quitarle el 'b
            gr.State.capsule = capsule            

            #Checa cuantos tokens tiene ese usuario via la API de Sulku: 
            #FUTURE: Checa si vale la pena guardar éstos estados.
            gr.State.tokens = sulkuPypi.getTokens(capsule)
            
            print(f"Tienes: {gr.State.tokens} tokens. ")
            creditos = gr.State.tokens
            print(f"Ésta es la cantidad guardada en creditos: {creditos}")
            
            return True

    #Si no hubo coincidencia regresas un false.    
    return False