コード例 #1
0
ファイル: __init__.py プロジェクト: amymok/cfgov-refresh
def custom_password_reset_confirm(
        request, uidb64=None, token=None,
        template_name='wagtailadmin/account/password_reset/confirm.html',
        post_reset_redirect='wagtailadmin_password_reset_complete'):
    """
    View that checks the hash in a password reset link and presents a
    form for entering a new password.
    """
    UserModel = get_user_model()
    assert uidb64 is not None and token is not None  # checked by URLconf
    post_reset_redirect = resolve_url(post_reset_redirect)

    try:
        # urlsafe_base64_decode() decodes to bytestring on Python 3
        uid = force_text(urlsafe_base64_decode(uidb64))
        user = UserModel._default_manager.get(pk=uid)
    except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist):
        user = None

    if user is not None and default_token_generator.check_token(user, token):
        validlink = True
        title = _('Enter new password')
        if request.method == 'POST':
            form = CFGOVSetPasswordForm(user, request.POST)
            if form.is_valid():
                form.save()
                user.temporarylockout_set.all().delete()
                return HttpResponseRedirect(post_reset_redirect)

        else:
            form = CFGOVSetPasswordForm(user)
    else:
        validlink = False
        form = None
        title = _('Password reset unsuccessful')

    context = {
        'form': form,
        'title': title,
        'validlink': validlink,
    }

    return TemplateResponse(request, template_name, context)
コード例 #2
0
def custom_password_reset_confirm(
        request,
        uidb64=None,
        token=None,
        template_name='wagtailadmin/account/password_reset/confirm.html',
        post_reset_redirect='wagtailadmin_password_reset_complete'):
    """
    View that checks the hash in a password reset link and presents a
    form for entering a new password.
    """
    UserModel = get_user_model()
    assert uidb64 is not None and token is not None  # checked by URLconf
    post_reset_redirect = resolve_url(post_reset_redirect)

    try:
        # urlsafe_base64_decode() decodes to bytestring on Python 3
        uid = force_text(urlsafe_base64_decode(uidb64))
        user = UserModel._default_manager.get(pk=uid)
    except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist):
        user = None

    if user is not None and default_token_generator.check_token(user, token):
        validlink = True
        title = _('Enter new password')
        if request.method == 'POST':
            form = CFGOVSetPasswordForm(user, request.POST)
            if form.is_valid():
                form.save()
                user.temporarylockout_set.all().delete()
                return HttpResponseRedirect(post_reset_redirect)

        else:
            form = CFGOVSetPasswordForm(user)
    else:
        validlink = False
        form = None
        title = _('Password reset unsuccessful')

    context = {
        'form': form,
        'title': title,
        'validlink': validlink,
    }

    return TemplateResponse(request, template_name, context)