def desvetarCliente (peticion, idDeCliente):
  """Cambia el estado del cliente a aprobado y envía notificación.

  TODO:
  ¿Qué pasa con un cliente que antes de pasar a la lista negra se encontraba
  a mitad de un proceso de cambio de llaves? Técnicamente, aquí tendríamos que
  regresarlo a ese estado."""
  cliente = Usuario.objects.get(pk = idDeCliente)
  cliente.estadoDeUsuario = EstadoDeUsuario.objects.get(
    nombre = 'aprobado')
  cliente.save()
  utilidades.enviarCorreo(cliente.correo.correo,
    "Aviso de desvetado de cuenta - Sistema tokenizador",
    """
    Estimado cliente:

    Su cuenta ha sido restablecida. Ahora puede volver a iniciar sesión
    y utilizar la API para tokenizar y detokenizar.

    Atentamente,
    Departamento de aprobación de cuentas,
    Sistema Tokenizador,
    Proyecto Lovelace.
    """)
  return django.http.HttpResponse()
Esempio n. 2
0
def enviarRecordatorioDeRefresco (usuario):
  """Envía correo de advertencia de llaves expiradas."""
  utilidades.enviarCorreo(
    usuario.correo.correo,
    "Advertencia de llaves expiradas - Sistema tokenizador",
    """
    Estimado cliente:

    Sus llaves han expirado. Es necesario iniciar el proceso de refresco de
    llaves para retokenizar sus tokens.

    Atentamente,
    Departamento de gestión de llaves,
    Sistema Tokenizador,
    Proyecto Lovelace.
    """)
def rechazarCliente (peticion, idDeCliente):
  """Cambia el estado del cliente a rechazado y envía notificación."""
  cliente = Usuario.objects.get(pk = idDeCliente)
  cliente.estadoDeUsuario = EstadoDeUsuario.objects.get(
    nombre = 'rechazado')
  cliente.save()
  utilidades.enviarCorreo(cliente.correo.correo,
    "Aviso de rechazo de cuenta - Sistema tokenizador",
    """
    Estimado cliente:

    Su solicitud de cuenta ha sido rechazada.

    Atentamente,
    Departamento de aprobación de cuentas,
    Sistema Tokenizador,
    Proyecto Lovelace.
    """)
  return django.http.HttpResponse()
def vetarCliente (peticion, idDeCliente):
  """Cambia el estado del cliente a en lista negra y envía notificación."""
  cliente = Usuario.objects.get(pk = idDeCliente)
  cliente.estadoDeUsuario = EstadoDeUsuario.objects.get(
    nombre = 'en lista negra')
  cliente.save()
  utilidades.enviarCorreo(cliente.correo.correo,
    "Aviso de vetado de cuenta - Sistema tokenizador",
    """
    Estimado cliente:

    Su cuenta ha sido puesta en la lista negra debido a usos
    incorrectos del sistema.

    Atentamente,
    Departamento de aprobación de cuentas,
    Sistema Tokenizador,
    Proyecto Lovelace.
    """)
  return django.http.HttpResponse()
def aprobarCliente (peticion, idDeCliente):
  """Cambia el estado del cliente a aprobado y envía notificación."""
  cliente = Usuario.objects.get(pk = idDeCliente)
  cliente.estadoDeUsuario = EstadoDeUsuario.objects.get(
    nombre = 'aprobado')
  cliente.save()
  utilidades.enviarCorreo(cliente.correo.correo,
    "Aviso de aprobación de cuenta - Sistema tokenizador",
    """
    Estimado cliente:

    Su solicitud de cuenta ha sido aprobada. A partir de ahora
    ya puede iniciar sesión en el sistema y usar las opraciones
    de la API para generar tokens.

    Atentamente,
    Departamento de aprobación de cuentas,
    Sistema Tokenizador,
    Proyecto Lovelace.
    """)
  _thread.start_new_thread(
    programa_tokenizador.negocio.generarLlaves, (cliente,))
  return django.http.HttpResponse()
Esempio n. 6
0
def enviarVinculoDeVerificacion (usuario, tipo):
  """Crea un nuevo vínculo de verificación y lo envía por correo.

  Guarda en la base de datos un hash del correo más la hora
  actual. Envía el vínculo por correo al cliente.

  Técnicamente, poner tantos datos en el código (el mensaje del correo
  electrónico), es una mala práctica, o cuando menos en lenguajes compilados,
  pues un cambio en los datos obliga a recompilar. En este caso, como es
  lenguaje interpretado, no veo por qué sería algo malo."""

  fecha = datetime.datetime.utcnow()
  hash = hashlib.sha256()
  hash.update(usuario.correo.correo.encode())
  hash.update(str(fecha).encode())
  vinculo = Vinculo(
    vinculo = hash.hexdigest(),
    fecha = fecha)
  vinculo.save()
  usuario.correo.vinculo = vinculo
  usuario.correo.save()
  utilidades.enviarCorreo(
    usuario.correo.correo,
    "Verificación de correo - Sistema tokenizador",
    """
    Estimado cliente:

    Para poder verificar su correo en el sistema tokenizador debe
    hacer clic en el siguiente vínculo:

    {0}/api/general/verificar_correo/{1}/{2}

    Atentamente,
    Departamento de verificación de cuentas,
    Sistema Tokenizador,
    Proyecto Lovelace.
    """.format(configuraciones.DOMINIO, tipo, usuario.correo.vinculo.vinculo))