Spaces:
Running
Running
File size: 4,864 Bytes
94b8c12 76fd605 94b8c12 8de6f2c 94b8c12 76fd605 d5c64bc 5f45547 76fd605 5f45547 901822a 94b8c12 b85eeeb 94b8c12 b85eeeb 94b8c12 614b43b 94b8c12 2647683 94b8c12 2647683 94b8c12 817b819 0ad66b3 817b819 0ad66b3 817b819 9ae7735 817b819 9ae7735 817b819 d5c64bc 94b8c12 1693b69 94b8c12 1693b69 94b8c12 d5c64bc 1693b69 94b8c12 614b43b 94b8c12 706f7ed 94b8c12 d5c64bc 94b8c12 901822a 94b8c12 d5c64bc bf151d0 |
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 131 132 133 |
import ast
import tools
import avaimet
import globales
import nycklar.nodes as nodes
#Aqu铆 van las funciones principales, las que son llamadas directo por la API.
#Las que interactuan con el servidor est谩n en el m贸dulo avaimet.
#Y las herramientas adicionales est谩n en tools.
def getData(aplicacion):
sshListo, sftpListo = avaimet.conecta()
#dir_data = avaimet.obtenDireccionArchivo() #Coment茅 茅ste pq me estar铆a ahorrando 茅sta funci贸n as铆:
dir_data = nodes.users_data + aplicacion + 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, env):
#Genera conexi贸n inicial.
sshListo, sftpListo = avaimet.conecta()
#Obtiene la caja donde est谩 guardados los tokens.
caja = avaimet.obtenCaja(userfile, env)
#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, env):
#Genera conexi贸n inicial.
sshListo, sftpListo = avaimet.conecta()
#Obtiene la caja donde est谩 guardados los tokens.
caja = avaimet.obtenCaja(userfile, env)
#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 getQuota():
#Genera conexi贸n inicial.
sshListo, sftpListo = avaimet.conecta()
dir_quota = nodes.quota + globales.quota
#Obtiene el json con los datos.
data = avaimet.obtenContenidoArchivo(sftpListo, dir_quota)
#Cierra la conexi贸n.
avaimet.cierraConexion(sshListo, sftpListo)
return int(data)
def updateQuota(costo_proceso):
#Genera conexi贸n inicial.
sshListo, sftpListo = avaimet.conecta()
dir_quota = nodes.quota + globales.quota
#Obtiene el json con los datos.
quota_actual = avaimet.obtenContenidoArchivo(sftpListo, dir_quota)
#Aplica las reglas de 茅sta app para debitar lo correspondiente.
quota_modificada = avaimet.modificaQuota(sftpListo, dir_quota, quota_actual, costo_proceso)
#Cierra la conexi贸n.
avaimet.cierraConexion(sshListo, sftpListo)
return quota_modificada
def getUserNovelty(userfile, aplicacion):
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 de novelty.
#dir_data = avaimet.obtenDireccionArchivo(globales.novelty)
dir_data = nodes.users_data + aplicacion + globales.novelty
#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
avaimet.cierraConexion(sshListo, sftpListo)
#Future, 驴se puede acaso que se cierre el contenido y que haga la conversi贸n al mismo tiempo? (threads)
#Repasa todas las tuplas
for tupla in lista_tuplas:
if tupla[0] == usuario:
tupla_encontrada = tupla
break
if tupla_encontrada:
#print("Usuario encontrado:", tupla_encontrada)
novelty = tupla_encontrada[1]
return novelty
else:
print("No se encontr贸 ese usuario.")
return "no user" |