Esempio n. 1
0
def password_reset_confirm(
        request,
        uidb36=None,
        token=None,
        template_name='registration/password_reset_confirm.html',
        token_generator=default_token_generator,
        set_password_form=SetPasswordForm,
        post_reset_redirect=None,
        current_app=None,
        extra_context=None):
    '''View that checks the hash in a password reset link and presents a form
    for entering a new password. Doesn't need ``csrf_protect`` since no-one can
    guess the URL.
    '''
    assert uidb36 is not None and token is not None  # checked by URLconf
    if post_reset_redirect is None:
        post_reset_redirect = reverse('baph_password_change_complete')
    else:
        post_reset_redirect = resolve_url(post_reset_redirect)
    try:
        uid = base36_to_int(uidb36)
        user = get_object_or_404(User, id=uid)
    except (TypeError, ValueError, OverflowError):
        user = None

    if user is not None and token_generator.check_token(user, token):
        validlink = True
        title = _('Enter new password')
        if request.method == 'POST':
            form = set_password_form(user, request.POST)
            if form.is_valid():
                form.save()
                return HttpResponseRedirect(post_reset_redirect)
        else:
            form = set_password_form(user)
    else:
        validlink = False
        form = None
        title = _('Password reset unsuccessful')
    context = {
        'form': form,
        'title': title,
        'validlink': validlink,
    }
    if extra_context is not None:
        context.update(extra_context)

    return render_to_response(template_name,
                              context,
                              context_instance=RequestContext(request))
Esempio n. 2
0
File: views.py Progetto: devhub/baph
def password_reset_confirm(request, uidb36=None, token=None,
                           template_name='registration/password_reset_confirm.html',
                           token_generator=default_token_generator,
                           set_password_form=SetPasswordForm,
                           post_reset_redirect=None,
                           current_app=None, extra_context=None):
    '''View that checks the hash in a password reset link and presents a form
    for entering a new password. Doesn't need ``csrf_protect`` since no-one can
    guess the URL.
    '''
    assert uidb36 is not None and token is not None  # checked by URLconf
    if post_reset_redirect is None:
        post_reset_redirect = reverse('baph_password_change_complete')
    else:
        post_reset_redirect = resolve_url(post_reset_redirect)
    try:
        uid = base36_to_int(uidb36)
        user = get_object_or_404(User, id=uid)
    except (TypeError, ValueError, OverflowError):
        user = None

    if user is not None and token_generator.check_token(user, token):
        validlink = True
        title = _('Enter new password')
        if request.method == 'POST':
            form = set_password_form(user, request.POST)
            if form.is_valid():
                form.save()
                return HttpResponseRedirect(post_reset_redirect)
        else:
            form = set_password_form(user)
    else:
        validlink = False
        form = None
        title = _('Password reset unsuccessful')
    context = {
        'form': form,
        'title': title,
        'validlink': validlink,
    }
    if extra_context is not None:
        context.update(extra_context)

    return render_to_response(template_name, context,
                               context_instance=RequestContext(request))
Esempio n. 3
0
def password_reset_confirm(
    request,
    uidb36=None,
    token=None,
    template_name=None,
    token_generator=default_token_generator,
    set_password_form=SetPasswordForm,
    post_reset_redirect=None,
):
    """View that checks the hash in a password reset link and presents a form
    for entering a new password. Doesn't need ``csrf_protect`` since no-one can
    guess the URL.
    """
    assert uidb36 is not None and token is not None  # checked by URLconf
    if not template_name:
        template_name = "registration/password_reset_confirm.html"
    if post_reset_redirect is None:
        post_reset_redirect = reverse("baph.auth.views.password_reset_complete")
    try:
        uid = UUID(int=base36_to_int(uidb36))
    except ValueError:
        raise Http404

    user = get_object_or_404(User, id=uid)
    context_instance = RequestContext(request)

    if token_generator.check_token(user, token):
        context_instance["validlink"] = True
        if request.method == "POST":
            form = set_password_form(user, request.POST)
            if form.is_valid():
                form.save()
                return HttpResponseRedirect(post_reset_redirect)
        else:
            form = set_password_form(None)
    else:
        context_instance["validlink"] = False
        form = None
    context_instance["form"] = form
    return render_to_response(template_name, context_instance=context_instance)
Esempio n. 4
0
def password_reset_confirm(request,
                           uidb36=None,
                           token=None,
                           template_name=None,
                           token_generator=default_token_generator,
                           set_password_form=SetPasswordForm,
                           post_reset_redirect=None):
    '''View that checks the hash in a password reset link and presents a form
    for entering a new password. Doesn't need ``csrf_protect`` since no-one can
    guess the URL.
    '''
    assert uidb36 is not None and token is not None  # checked by URLconf
    if not template_name:
        template_name = 'registration/password_reset_confirm.html'
    if post_reset_redirect is None:
        post_reset_redirect = reverse(
            'baph.auth.views.password_reset_complete')
    try:
        uid = UUID(int=base36_to_int(uidb36))
    except ValueError:
        raise Http404

    user = get_object_or_404(User, id=uid)
    context_instance = RequestContext(request)

    if token_generator.check_token(user, token):
        context_instance['validlink'] = True
        if request.method == 'POST':
            form = set_password_form(user, request.POST)
            if form.is_valid():
                form.save()
                return HttpResponseRedirect(post_reset_redirect)
        else:
            form = set_password_form(None)
    else:
        context_instance['validlink'] = False
        form = None
    context_instance['form'] = form
    return render_to_response(template_name, context_instance=context_instance)