File size: 4,121 Bytes
206ad0b
 
 
4d7403b
 
206ad0b
4d7403b
206ad0b
4d7403b
 
 
206ad0b
 
4d7403b
206ad0b
4d7403b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78270c3
206ad0b
 
78270c3
 
206ad0b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78270c3
 
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
import ast
import tools
import globales
import avaimet

#Aqu铆 van las funciones principales, las que interactuan con el servidor est谩n en el m贸dulo avaimet.

def getData():
    #Genera conexi贸n inicial.       
    sshListo, sftpListo = avaimet.conecta()
    #Obtiene la caja donde est谩 guardados los tokens.
    #Future: Ese data.py despu茅s puede viri en un globales.
    dir_data = avaimet.obtenDireccionArchivo(globales.data)
    #Obtiene el json con los datos.
    data = avaimet.obtenContenidoArchivo(sftpListo, dir_data)    
    #Cierra la conexi贸n.    
    avaimet.cierraConexion(sshListo, sftpListo)
    
    return data

def getTokens(userfile):

    #Genera conexi贸n inicial.       
    sshListo, sftpListo = avaimet.conecta()
    #Obtiene la caja donde est谩 guardados los tokens.
    caja = avaimet.obtenCaja(userfile)
    #Obtiene los tokens que hay en esa caja.
    tokens = avaimet.obtenTokens(sftpListo, caja)
    #Cierra la conexi贸n.    
    avaimet.cierraConexion(sshListo, sftpListo)
    
    return tokens

def authorize(tokens, work):

    print(f"Task received : {work}, type: {type(work)} ...")

    ##脡sta secci贸n se reutilizar谩 si en lugar de pasar el par谩metro token, se pasa el par谩metro userfile.
    #Actualmente no lo pedimos porque es el developer el que pone la cantidad de tokens que el usuario tiene para...
    #...evitar otra vuelta al server, por mayor certeza o seguridad se puede hacer esa ida. 
    #En un futuro incluso se pueden hacer los dos tipos de autorizaci贸n en dos endpoints distintos. O en un solo endpoint con...
    #...las dos opciones. 

    #Genera conexi贸n inicial.
    #sshListo, sftpListo = avaimet.conecta()
    #Obtiene la caja donde est谩 guardados los tokens.
    #caja = avaimet.obtenCaja(userfile)
    #Obtiene los tokens que hay en esa caja.
    #tokens = avaimet.obtenTokens(sftpListo, caja)
    
    #True si autoriza o false si no autoriza.
    result = avaimet.autoriza(tokens, work)
    
    #Cierra la conexi贸n.  
    #avaimet.cierraConexion(sshListo, sftpListo)

    return result

def debitTokens(userfile, work):

    print(f"Task received : {work}, type: {type(work)} ...")

    #Genera conexi贸n inicial.
    sshListo, sftpListo = avaimet.conecta()
    #Obtiene la caja donde est谩 guardados los tokens.
    caja = avaimet.obtenCaja(userfile)
    #Obtiene los tokens que hay en esa caja.
    tokens = avaimet.obtenTokens(sftpListo, caja)
    #Aplica las reglas de 茅sta app para debitar lo correspondiente.
    resultado_debitado = avaimet.restaToken(sftpListo, caja, tokens, work)
    #Cierra la conexi贸n.  
    avaimet.cierraConexion(sshListo, sftpListo)

    return resultado_debitado



def getUserFlag(userfile):

    usuario = tools.decompileUser(userfile)
    
    #Genera conexi贸n inicial (general para cualquier funci贸n.)  
    sshListo, sftpListo = avaimet.conecta()
    #Obtiene la caja donde est谩 guardados las flags.
    #Future: Que flags.py venga de globales.
    dir_data = avaimet.obtenDireccionArchivo(globales.flags)
    #Obtiene el json con los datos.
    data = avaimet.obtenContenidoArchivo(sftpListo, dir_data)
    
    # Convertir el string a una lista de tuplas utilizando ast.literal_eval()
    lista_tuplas = ast.literal_eval(data)

    tupla_encontrada = None  # Inicializamos una variable para almacenar la tupla encontrada

    for tupla in lista_tuplas:
        if tupla[0] == usuario:
            tupla_encontrada = tupla
            break

    if tupla_encontrada:
        print("La tupla encontrada es:", tupla_encontrada)
    else:
        print("No se encontr贸 ninguna tupla con el texto especificado.")

    valor_en_1 = tupla_encontrada[1]
    print("Revisar si es correcto que valor_en_1 sea: ", valor_en_1)
    
    #Cierra la conexi贸n.    
    avaimet.cierraConexion(sshListo, sftpListo)
    #Future, 驴se puede acaso que se cierre el contenido y que haga la conversi贸n al mismo tiempo?    
    
    return lista_tuplas
















    return flag