Example #1
0
 def registrar_usuario(self, estado=1):
     """Registra los usuarios de acuerdo a lo ingresado en el formulario.
     Llamando a los metodos insert_usuario y a send_mail"""
     user = controlador.get_usuario(self.ids.dni.text)
     if not user:
         data = {}
         data['dni'] = self.ids.dni.text
         data['nombre'] = self.ids.nombre.text
         data['lu'] = self.ids.lu.text
         data['email'] = self.ids.mail.text
         data['id_facultad'] = self.facultades[self.ids.facultad.text]
         data['id_provincia'] = self.provincias[self.ids.provincia.text]
         password = utils.generar_pass()
         data['password'] = utils.ofuscar_pass(password)
         data['estado'] = estado  # 0 bloqueado / 1 registrado
         data['id_perfil'] = controlador.get_perfil('Alumno')
         data['id_categoria'] = controlador.get_categoria_id('Regular')
         # insertamos el usuario en la db
         controlador.insert_usuario(data, UNIDAD)
         # Enviamos el mail de confirmación
         datos_mail = controlador.get_configuracion()
         mail_thread = Thread(
             target=mailserver.send_mail,
             args=(data['nombre'], data['email'], password, datos_mail)
         )
         mail_thread.start()
         mensaje = "\rGracias por registrarte!!\r\n\r\n"
         mensaje += "Comprueba tu mail\r\n para completar el registro"
         WarningPopup(mensaje).open()
     else:
         mensaje = "Ya existe un usario con ese DNI"
         WarningPopup(mensaje).open()
Example #2
0
 def update_datos(self):
     """Actualiza los datos de la pantalla para plasmar cambios"""
     user_session.update(controlador.get_usuario(self.data['dni']))
     self.user = user_session.get_user()
     self.cargar_datos()
     self.ids.saldo.text = self.data['saldo']
     self.ids.nombre.text = self.data['nombre']
Example #3
0
 def validar_login(self, dni, password):
     """Revisa el password de acuerdo al dni ingresado y devuelve los
     siguientes estados:
         0: No existe el dni o no coincide con el password
         1: Existe el usuario pero no confirmó su registro(cambiar pass)
         2: Existe el usuario y está registrado(ingresar)
         3: Existe el usuario pero esta suspendido(cancelar ingreso)
         6: Existe el usuario y es de control(pantalla de control)"""
     user = controlador.get_usuario(dni)
     if user:
         if self.comparar_pass(password, user):
             if user['id_perfil'] == 4:  # usuario alumno
                 if not user['activo']:
                     if user['estado'] == 1:  # wait / login & cambiar pass
                         return 1
                     elif user['estado'] == 2:  # activo / login & menu
                         return 2
                     else:  # suspendido / cancel
                         return 3
                 else:
                     return 5  # usuario logueado en otra maquina
             elif user['id_perfil'] in [3, 5]:  # usuario administrativo
                 return 6
             else:
                 return 0
         else:
             return 0
     else:
         return 0
Example #4
0
 def validar_login(self, dni, password):
     """Revisa el password de acuerdo al dni ingresado y devuelve los
     siguientes estados:
         0: No existe el dni o no coincide con el password
         1: Existe el usuario pero no confirmó su registro(cambiar pass)
         2: Existe el usuario y está registrado(ingresar)
         3: Existe el usuario pero esta suspendido(cancelar ingreso)
         6: Existe el usuario y es de control(pantalla de control)"""
     user = controlador.get_usuario(dni)
     if user:
         if self.comparar_pass(password, user):
             if user['id_perfil'] == 4:  # usuario alumno
                 if not user['activo']:
                     if user['estado'] == 1:  # wait / login & cambiar pass
                         return 1
                     elif user['estado'] == 2:  # activo / login & menu
                         return 2
                     else:  # suspendido / cancel
                         return 3
                 else:
                     return 5  # usuario logueado en otra maquina
             elif user['id_perfil'] in [3, 5]:  # usuario administrativo
                 return 6
             else:
                 return 0
         else:
             return 0
     else:
         return 0
Example #5
0
 def update_profile(self):
     """Actualiza el perfil con los cambios realizados por el usuario"""
     self.updata = {}
     self.updata['email'] = self.ids.email.text
     self.updata['id_provincia'] = self.provincias[self.ids.provincia.text]
     controlador.update_usuario(self.user, self.updata)
     controlador.insert_log(self.user, 'perfil', UNIDAD)
     user_session.update(controlador.get_usuario(self.data['dni']))
     self.cargar_datos()
Example #6
0
 def update_profile(self):
     """Actualiza el perfil con los cambios realizados por el usuario"""
     self.updata = {}
     self.updata['email'] = self.ids.email.text
     self.updata['id_provincia'] = self.provincias[self.ids.provincia.text]
     controlador.update_usuario(self.user, self.updata)
     controlador.insert_log(self.user, 'perfil', UNIDAD)
     user_session.update(controlador.get_usuario(self.data['dni']))
     self.cargar_datos()
Example #7
0
 def cargar_datos(self):
     """Carga los datos del usuario dentro de la pantalla de anulación"""
     try:
         user_session.update(controlador.get_usuario(self.data['dni']))
         self.user = user_session.get_user()
     except KeyError:
         self.user = user_session.get_user()
     self.data['dni'] = self.user['dni']
     self.data['saldo'] = '$ %.0f' % (self.user['saldo'])
     self.data['categoria'] = controlador.get_categoria_nombre(
                                                 self.user['id_categoria'])
     self.data['facultad'] = controlador.get_facultad(
                                                 self.user['id_facultad'])
     self.data['ruta_foto'] = self.user['ruta_foto']
Example #8
0
 def validar(self):
     """Valida las entradas y chequea en la base de datos por el par
     dni - password"""
     if self.ids.dni.text:
         if not self.ids.dni.text.isdigit():
             self.ids.dni.text = ""
             self.ids.dni.focus = True
             mensaje = u"Su DNI solo puede contenter números"
             WarningPopup(mensaje).open()
         elif len(self.ids.dni.text) >= 10:
             mensaje = u"\rSu DNI no puede tener\r\n más de 10 caracteres."
             self.ids.dni.focus = True
             WarningPopup(mensaje).open()
         elif not self.ids.passw.text:
             mensaje = u"Su PASSWORD no puede estar vacío"
             self.ids.passw.focus = True
             WarningPopup(mensaje).open()
         elif len(self.ids.passw.text) >= 64:
             mensaje = u"\rSu PASSWORD no puede tener\r\n"
             mensaje += u"más de 64 caracteres."
             self.ids.passw.focus = True
             WarningPopup(mensaje).open()
         else:
             dni = self.ids.dni.text
             password = self.ids.passw.text
             login = self.validar_login(dni, password)
             if login:
                 self.clear()
                 user_session.init(controlador.get_usuario(dni), time())
                 user = user_session.get_user()
                 controlador.insert_log(
                     user,
                     'ingresar',
                     UNIDAD,
                     'control - desbloqueo'
                 )
                 self.manager.current = 'menu_control'
                 self.manager.remove_widget(
                     self.manager.get_screen('bloqueo')
                 )
             else:
                 self.ids.passw.text = ""
                 mensaje = u"DNI o PASSWORD incorrecto"
                 WarningPopup(mensaje).open()
     else:
         mensaje = u"Su DNI no puede estar vacío"
         self.ids.dni.focus = True
         WarningPopup(mensaje).open()
Example #9
0
 def validar_login(self, dni, password):
     """Revisa el password de acuerdo al dni ingresado y devuelve los
     siguientes estados:
         0: No existe el dni o no coincide con el password
         1: Existe el usuario pero no confirmó su registro(cambiar pass)
         2: Existe el usuario y está registrado(ingresar)
         3: Existe el usuario pero esta suspendido(cancelar ingreso)
         6: Existe el usuario y es de control(pantalla de control)"""
     user = controlador.get_usuario(dni)
     if user:
         if self.comparar_pass(password, user):
             if user['id_perfil'] in [3, 5]:  # usuario administrativo
                 return 1
             else:
                 return 0
         else:
             return 0
     else:
         return 0
Example #10
0
 def cargar_datos(self):
     """Carga los datos del usuario dentro de la pantalla de perfil"""
     try:
         user_session.update(controlador.get_usuario(self.data['dni']))
         self.user = user_session.get_user()
     except KeyError:
         self.user = user_session.get_user()
     self.provincias_nombre = sorted(self.provincias.keys())
     self.data['nombre'] = self.user['nombre']
     self.data['dni'] = self.user['dni']
     self.data['saldo'] = '$ %.0f' % (self.user['saldo'])
     self.data['categoria'] = controlador.get_categoria_nombre(
                                                 self.user['id_categoria'])
     self.data['nombre'] = self.user['nombre']
     self.data['email'] = self.user['email']
     self.data['provincia'] = controlador.get_provincia(
                                                 self.user['id_provincia'])
     self.data['facultad'] = controlador.get_facultad(
                                                 self.user['id_facultad'])
     self.data['ruta_foto'] = self.user['ruta_foto']
Example #11
0
 def cargar_datos(self):
     """Carga los datos del usuario dentro de la pantalla de perfil"""
     try:
         user_session.update(controlador.get_usuario(self.data['dni']))
         self.user = user_session.get_user()
     except KeyError:
         self.user = user_session.get_user()
     self.provincias_nombre = sorted(self.provincias.keys())
     self.data['nombre'] = self.user['nombre']
     self.data['dni'] = self.user['dni']
     self.data['saldo'] = '$ %.0f' % (self.user['saldo'])
     self.data['categoria'] = controlador.get_categoria_nombre(
         self.user['id_categoria'])
     self.data['nombre'] = self.user['nombre']
     self.data['email'] = self.user['email']
     self.data['provincia'] = controlador.get_provincia(
         self.user['id_provincia'])
     self.data['facultad'] = controlador.get_facultad(
         self.user['id_facultad'])
     self.data['ruta_foto'] = self.user['ruta_foto']
Example #12
0
 def update_datos(self):
     """Actualiza los datos de la pantalla para plasmar cambios"""
     user_session.update(controlador.get_usuario(self.data["dni"]))
     self.cargar_datos()
     self.ids.saldo.text = self.data["saldo"]
     self.ids.nombre.text = self.data["nombre"]
Example #13
0
 def validar(self):
     """Valida las entradas y chequea en la base de datos por el par
     dni - password"""
     if self.ids.dni.text:
         if not self.ids.dni.text.isdigit():
             self.ids.dni.text = ""
             self.ids.dni.focus = True
             mensaje = u"Su DNI solo puede contenter números"
             WarningPopup(mensaje).open()
         elif len(self.ids.dni.text) >= 10:
             mensaje = u"\rSu DNI no puede exceder\r\n los 10 caracteres."
             self.ids.dni.focus = True
             WarningPopup(mensaje).open()
         elif not self.ids.passw.text:
             mensaje = u"Su PASSWORD no puede estar vacío"
             self.ids.passw.focus = True
             WarningPopup(mensaje).open()
         elif len(self.ids.passw.text) >= 64:
             msje = u"\rSu PASSWORD no puede exceder\r\n los 64 caracteres."
             self.ids.passw.focus = True
             WarningPopup(msje).open()
         else:
             dni = self.ids.dni.text
             password = self.ids.passw.text
             login = self.validar_login(dni, password)
             if login:
                 if login == 2:
                     self.clear()
                     user_session.init(controlador.get_usuario(dni), time())
                     user = user_session.get_user()
                     controlador.insert_log(user, 'ingresar', UNIDAD)
                     controlador.update_activo(user, 1)
                     self.manager.current = 'menu'
                 elif login == 1:
                     self.clear()
                     user_session.init(controlador.get_usuario(dni), time())
                     user = user_session.get_user()
                     controlador.insert_log(user, 'ingresar', UNIDAD)
                     self.manager.add_widget(
                         PasswordScreen('splash', 'splash', 'pass')
                     )
                     self.manager.current = 'pass'
                 elif login == 6:
                     self.clear()
                     user_session.init(controlador.get_usuario(dni), time())
                     user = user_session.get_user()
                     controlador.insert_log(
                         user, 'ingresar', UNIDAD, 'control'
                     )
                     self.manager.current = 'menu_control'
                 elif login == 5:
                     self.clear()
                     msje = u"\rYa has iniciado sesión\r\n en otra maquina."
                     WarningPopup(msje).open()
                 else:
                     self.clear()
                     mensaje = u"\rSu cuenta esta bloqueada.\r\n Dirijase"
                     mensaje += u" a la Administración \r\n del Comedor"
                     mensaje += u" Universitario."
                     WarningPopup(mensaje).open()
             else:
                 self.ids.passw.text = ""
                 mensaje = u"DNI o PASSWORD incorrecto"
                 WarningPopup(mensaje).open()
     else:
         mensaje = u"Su DNI no puede estar vacío"
         self.ids.dni.focus = True
         WarningPopup(mensaje).open()
Example #14
0
 def validar(self):
     """Valida las entradas y chequea en la base de datos por el par
     dni - password"""
     if self.ids.dni.text:
         if not self.ids.dni.text.isdigit():
             self.ids.dni.text = ""
             self.ids.dni.focus = True
             mensaje = u"Su DNI solo puede contenter números"
             WarningPopup(mensaje).open()
         elif len(self.ids.dni.text) >= 10:
             mensaje = u"\rSu DNI no puede exceder\r\n los 10 caracteres."
             self.ids.dni.focus = True
             WarningPopup(mensaje).open()
         elif not self.ids.passw.text:
             mensaje = u"Su PASSWORD no puede estar vacío"
             self.ids.passw.focus = True
             WarningPopup(mensaje).open()
         elif len(self.ids.passw.text) >= 64:
             msje = u"\rSu PASSWORD no puede exceder\r\n los 64 caracteres."
             self.ids.passw.focus = True
             WarningPopup(msje).open()
         else:
             dni = self.ids.dni.text
             password = self.ids.passw.text
             login = self.validar_login(dni, password)
             if login:
                 if login == 2:
                     self.clear()
                     user_session.init(controlador.get_usuario(dni), time())
                     user = user_session.get_user()
                     controlador.insert_log(user, 'ingresar', UNIDAD)
                     controlador.update_activo(user, 1)
                     self.manager.current = 'menu'
                 elif login == 1:
                     self.clear()
                     user_session.init(controlador.get_usuario(dni), time())
                     user = user_session.get_user()
                     controlador.insert_log(user, 'ingresar', UNIDAD)
                     self.manager.add_widget(
                         PasswordScreen('splash', 'splash', 'pass'))
                     self.manager.current = 'pass'
                 elif login == 6:
                     self.clear()
                     user_session.init(controlador.get_usuario(dni), time())
                     user = user_session.get_user()
                     controlador.insert_log(user, 'ingresar', UNIDAD,
                                            'control')
                     self.manager.current = 'menu_control'
                 elif login == 5:
                     self.clear()
                     msje = u"\rYa has iniciado sesión\r\n en otra maquina."
                     WarningPopup(msje).open()
                 else:
                     self.clear()
                     mensaje = u"\rSu cuenta esta bloqueada.\r\n Dirijase"
                     mensaje += u" a la Administración \r\n del Comedor"
                     mensaje += u" Universitario."
                     WarningPopup(mensaje).open()
             else:
                 self.ids.passw.text = ""
                 mensaje = u"DNI o PASSWORD incorrecto"
                 WarningPopup(mensaje).open()
     else:
         mensaje = u"Su DNI no puede estar vacío"
         self.ids.dni.focus = True
         WarningPopup(mensaje).open()