def autenticar(self, datos): """ Autentica el usuario contra el servidor web dentro de un thread en segundo plano """ try: (usuario, clave) = datos.split(',') except ValueError: self.cb_actualizacion_informacion(MSG_TARJETA_INVALIDA, idle=True, color=self.COLOR_ERR) else: try: respuesta = self._conexion.autenticar(usuario, clave) if respuesta.status_ok(): self.__set_estado_conexion(self.AUTENTICADO) self.cb_actualizacion_informacion('%s' % respuesta['mensaje'], idle=True, color=self.COLOR_OK) estados = respuesta['estado_mesas'] self._acta_desglosada, self._estados_mesas = \ estados_mesas_dict(estados) self.cb_actualizacion_mesas() else: self.cb_actualizacion_informacion(MSG_ERROR_GENERICO % respuesta['mensaje'], idle=True, color=self.COLOR_ERR) except Exception as e: self.logger.debug(str(e)) self.cb_actualizacion_informacion(MSG_ERROR_COMUNICACION, idle=True, color=self.COLOR_ERR)
def _autenticar(self, usuario, clave): """ Autentica este cliente contra el servidor. El parámetro datos es el string de autenticación. """ respuesta = {} user = get_usuario(usuario) status = "ER" if user is not None: if user.clave == clave: status = "OK" mensaje = "Bienvenido %s al sistema de transmisi\u00f3n.\n" \ "Ingrese los certificados de mesa a transmitir en" \ " la impresora." % user.nombre mesas = get_estado_mesas(user.ubicacion, self._acta_desglosada) # Genero un diccionario de estados para poder realizar luego # la validación _, self._estados = estados_mesas_dict(mesas) respuesta["estado_mesas"] = mesas else: mensaje = "La clave ingresada para el usuario %s es " \ "incorrecta" % user.nombre else: mensaje = 'Usuario no Autenticado' respuesta["status"] = status respuesta["mensaje"] = mensaje simular_delay_conexion() return dumps(respuesta)