Ejemplo n.º 1
0
def forgetpasswordreset(request, uidb64, token):
    context = {}
    context['password_reset_form'] = ResetPasswordForm(request.user)
    if request.method == 'POST':
        user = User.objects.get(pk=urlsafe_base64_decode(uidb64))
        form = SetPasswordForm(request.user, request.POST)
        if form.is_valid():
            form.user = user
            form.save()
            messages.success(
                request,
                'Your password was successfully updated! Login to continue')
            email_template_name = "forgetpassword/password_reset_confirmation.txt"
            subject = "Password Reset Completed"
            c = {"user_email": user.email, "user": user.get_full_name()}
            email = render_to_string(email_template_name, c)
            send_mail(subject, email, settings.EMAIL_HOST_USER, [user.email])
            return HttpResponseRedirect('/login/')
        else:
            for msg in form.error_messages:
                if 'inactive' not in form.error_messages[msg]:
                    messages.error(request, f"{form.error_messages[msg]}")

    login_page = loader.get_template('forgetpassword/forgetpassword.htm')
    context["hide_form"] = 'N'
    user = User.objects.get(pk=urlsafe_base64_decode(uidb64))
    if default_token_generator.check_token(user=user, token=token):
        return HttpResponse(login_page.render(context, request))
    return HttpResponseNotFound()