Exemplo n.º 1
0
def restore_password(request):

    if request.method == 'GET':
        form = RestorePasswordForm()
        return render(request, 'restore_password.html', {
            'form': form,
        })


    form = RestorePasswordForm(request.POST)
    if not form.is_valid():
        return HttpResponseRedirect('/login/')

    try:
        user = UserProxy.objects.all().by_username_or_email(
                form.cleaned_data['username'],
                form.cleaned_data['email']
            )

    except UserProxy.DoesNotExist:
        messages.error(request, _('User does not exist.'))
        return render(request, 'password_reset_failed.html')

    if not user.is_active:
        send_activation_email(user, request)
        messages.error(request, _('Please activate your account first. '
            'We have just re-sent your activation email'))
        return HttpResponseRedirect(reverse('login'))

    site = RequestSite(request)
    pwd = random_token(length=16)
    user.set_password(pwd)
    user.save()
    subject = render_to_string('reset-pwd-subj.txt', {'site': site}).strip()
    message = render_to_string('reset-pwd-msg.txt', {
        'username': user.username,
        'site': site,
        'password': pwd,
    })
    user.email_user(subject, message)
    return render(request, 'password_reset.html')
Exemplo n.º 2
0
def restore_password(request):

    if request.method == "GET":
        form = RestorePasswordForm()
        return render(request, "restore_password.html", {"form": form})

    form = RestorePasswordForm(request.POST)
    if not form.is_valid():
        return HttpResponseRedirect("/login/")

    try:
        user = UserProxy.objects.all().by_username_or_email(
            form.cleaned_data["username"], form.cleaned_data["email"])

    except UserProxy.DoesNotExist:
        messages.error(request, _("User does not exist."))
        return render(request, "password_reset_failed.html")

    if not user.is_active:
        send_activation_email(user, request)
        messages.error(
            request,
            _("Please activate your account first. "
              "We have just re-sent your activation email"),
        )
        return HttpResponseRedirect(reverse("login"))

    site = RequestSite(request)
    pwd = random_token(length=16)
    user.set_password(pwd)
    user.save()
    subject = render_to_string("reset-pwd-subj.txt", {"site": site}).strip()
    message = render_to_string("reset-pwd-msg.txt", {
        "username": user.username,
        "site": site,
        "password": pwd
    })
    user.email_user(subject, message)
    return render(request, "password_reset.html")