GastonPalazzo

login_account.py

Nov 25th, 2020
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.58 KB | None | 0 0
  1. # import
  2. import base64
  3. from dba import DataBase
  4. from usuario import Usuario
  5. from cuenta import Cuenta
  6. from validador import Validador
  7.  
  8. # class
  9. class Login():
  10.     # cnstr
  11.     def __init__(self, database=DataBase):
  12.         self.__mydb = database
  13.         self.__vld = Validador(self.__mydb)
  14.     # methds
  15.     def __desencriptarPass(self, password_a_desencriptar):
  16.         b = base64.b64decode(password_a_desencriptar)
  17.         s = b.decode("UTF-8")
  18.         return s
  19.     def __encriptarPass(self, password_a_encriptar=str):
  20.         b = password_a_encriptar.encode("UTF-8") # codificacion a bytes
  21.         e = base64.b64encode(b) # coodificacion a base64
  22.         return e
  23.     def login_account(self):
  24.         print('\nPantalla de logeo ↓')
  25.         # query ↓
  26.         sql = '''SELECT usuarios_id, usuarios.nombre, apellido, edad, paises.nombre AS "pais", ciudades.nombre AS "ciudad", genero, telefono
  27.        FROM usuarios
  28.        INNER JOIN ciudades ON ciudad_id_1 = ciudades.ciudad_id
  29.        INNER JOIN paises ON ciudades.pais_codigo = paises.codigo
  30.        INNER JOIN cuentas ON usuarios.usuarios_id = cuentas.usuario_id_2
  31.        WHERE login_name = %s AND login_pass = %s;'''
  32.         # values ↓
  33.         form_login = {
  34.             'login_name' : input('\n<login_name>: '),
  35.             'login_pass' : input('\n<login_pass>: ')
  36.         }
  37.         r, dic = self.__vld.validar_login(form_login)
  38.         if r == 0:
  39.             dic['login_pass'] = str(self.__encriptarPass(dic['login_pass'])).split("'")[1]
  40.             val = (dic['login_name'], dic['login_pass'], )
  41.             self.__mydb.ejecutar(sql, val)
  42.             rows = self.__mydb.get_cursor().fetchall()
  43.             if len(rows) > 0 :
  44.                 nw_user = Usuario(rows[0][0], rows[0][1], rows[0][2], rows[0][3], rows[0][4], rows[0][5], rows[0][6], rows[0][7])
  45.                 # query ↓
  46.                 sql = 'SELECT * FROM cuentas WHERE usuario_id_2 = %s;'
  47.                 # value ↓
  48.                 val = (nw_user.get_user_id(), )
  49.                 self.__mydb.ejecutar(sql, val)
  50.                 rows = self.__mydb.get_cursor().fetchall()
  51.                 nw_acc = Cuenta(rows[0][0], rows[0][1], self.__desencriptarPass(rows[0][2]), nw_user, rows[0][4], rows[0][5], self.__mydb)
  52.                 return nw_acc
  53.             else:
  54.                 print(f'\n[Err]: nombre de usuario o contraseña incorrectos!')
  55.                 return None
  56.         else:
  57.             print(f'\n[Err]: uno o mas datos no pudieron validarse ↓')
  58.             for val in dic.values():
  59.                 print(f'\t{val[0]}')
  60.             return None
Add Comment
Please, Sign In to add comment