Conjunto de cambios da96b55 en seiven para usuario


Ignorar:
Fecha y hora:
21/08/2017 09:47:01 (hace 7 años)
Autor:
Ing. Roldan D. Vargas G <rvargas@…>
Branches:
master
Children:
35822b1
Parents:
f0200a9
Mensaje:

correcciones en la modificación de contraseña por olvido

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • usuario/views.py

    r3e5ebf9 rda96b55  
    2222from django.contrib.auth.models import User
    2323from django.contrib.messages.views import SuccessMessageMixin
    24 from django.core import urlresolvers
     24from django.core import urlresolvers, signing
    2525from django.core.urlresolvers import reverse_lazy, reverse
    2626from django.http import HttpResponseRedirect
     
    3838from .models import UserProfile
    3939
     40date_now = datetime.now()
    4041logger = logging.getLogger("usuario")
    4142
     
    151152            usr = User.objects.get(username=username)
    152153
    153             ## Asigna un enlace de verificación para el olvido de clave
    154             link = request.build_absolute_uri("%s?userid=%s&key=%s" % (
     154            ## Fecha (cifrada) en la que se genero el enlace para la modificacion de contraseña
     155            date_link_signed = signing.dumps("%s-%s-%s" % (date_now.year, date_now.month, date_now.day))
     156
     157            link = request.build_absolute_uri("%s?userid=%s&key=%s&date=%s" % (
    155158                urlresolvers.reverse('confirmar_modificar_clave'),
    156                 username, hash_user(usr, is_reset=True).decode()
     159                username, hash_user(usr, is_reset=True).decode(),
     160                date_link_signed
    157161            ))
    158162
     
    195199    userid = request.GET.get('userid', None)
    196200    key = request.GET.get('key', None)
     201    date_link_generate = request.GET.get('date', None)
    197202    verificado = False
    198203    mensaje = str(_("El usuario ha sido verificado"))
    199204    modificar_clave_url = None
    200205
    201     if userid and key and User.objects.filter(username=userid):
     206    if userid and key and date_link_generate and User.objects.filter(username=userid):
    202207        user = User.objects.get(username=userid)
    203         if calcular_diferencia_fechas(user.date_joined) <= CADUCIDAD_LINK_REGISTRO:
     208
     209        ## Fecha (descifrada) en la que se genero el enlace para la modificacion de contraseña
     210        link_date = datetime.strptime(signing.loads(date_link_generate), "%Y-%m-%d")
     211
     212        if calcular_diferencia_fechas(link_date) <= CADUCIDAD_LINK_REGISTRO:
    204213            if key.strip() == hash_user(user, is_reset=True).decode():
    205214                modificar_clave_url = "%s?userid=%s&key=%s" % (
     
    244253                perfil.save()
    245254            messages.info(request, _("Su contraseña ha sido modificada correctamente"))
    246 
     255            alert = str(_("La contraseña fue modificada satisfactoriamente"))
    247256            logger.info(str(_("El usuario [%s] modificó su contraseña por olvido") % username))
    248             return HttpResponseRedirect(urlresolvers.reverse("acceso"))
     257            form = AutenticarForm()
     258            return render(request, 'base.template.html', {'form': form, 'alert': alert})
     259            #return HttpResponseRedirect(urlresolvers.reverse("acceso"))
    249260
    250261    return render(request, 'usuario.modificar.clave.html', {'form': form, 'fortaleza_clave': True, 'username': username})
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.