def change_settings(request):
    reset_form = None
    disable_form = None
    gridcard_form = None
    if request.method == "POST":
        post = request.POST
        if post.get("reset_confirmation"):
            reset_form = ResetTwoFactorAuthForm(request.user, data=post)
            if reset_form.is_valid():
                reset_form.save()
                return redirect("auth-enabled")
        elif post.get("disable_confirmation"):
            disable_form = DisableTwoFactorAuthForm(request.user, data=post)
            if disable_form.is_valid():
                disable_form.save()
                return redirect("change-settings")
        else:
            gridcard_form = GridCardActivationForm(request.user, data=post)
            if gridcard_form.is_valid():
                gridcard_form.save()
                return redirect("auth-enabled-gridcard")

    return render(request, "twofactor_demo/settings.html", {
        "reset_form": reset_form or ResetTwoFactorAuthForm(request.user),
        "disable_form": disable_form or DisableTwoFactorAuthForm(request.user),
        "gridcard_form": gridcard_form or GridCardActivationForm(request.user),
    })
Beispiel #2
0
def change_settings(request):
    reset_form = None
    disable_form = None
    gridcard_form = None
    if request.method == "POST":
        post = request.POST
        if post.get("reset_confirmation"):
            reset_form = ResetTwoFactorAuthForm(request.user, data=post)
            if reset_form.is_valid():
                reset_form.save()
                return redirect("auth-enabled")
        elif post.get("disable_confirmation"):
            disable_form = DisableTwoFactorAuthForm(request.user, data=post)
            if disable_form.is_valid():
                disable_form.save()
                return redirect("change-settings")
        else:
            gridcard_form = GridCardActivationForm(request.user, data=post)
            if gridcard_form.is_valid():
                gridcard_form.save()
                return redirect("auth-enabled-gridcard")

    return render(
        request, "twofactor_demo/settings.html", {
            "reset_form": reset_form or ResetTwoFactorAuthForm(request.user),
            "disable_form": disable_form
            or DisableTwoFactorAuthForm(request.user),
            "gridcard_form": gridcard_form
            or GridCardActivationForm(request.user),
        })
Beispiel #3
0
    def twofactor_config(self, request):
        """
        Handles two-factor authenticator configuration.
        """
        disableform = None
        resetform = None
        if (request.method == "POST")\
        and ("reset_confirmation" in request.POST):
            # We are resetting the user's two-factor key.
            resetform = ResetTwoFactorAuthForm(user=request.user,
                data=request.POST)
            if resetform.is_valid():
                token = resetform.save()
                return render_to_response(
                    "twofactor_admin/registration/twofactor_config_done.html",
                    dict(token=token, user=request.user),
                    context_instance=RequestContext(request)
                )
        elif (request.method == "POST")\
        and ("disable_confirmation" in request.POST):
            # We are disabling two-factor auth for the user
            disableform = DisableTwoFactorAuthForm(user=request.user,
                data=request.POST)
            if disableform.is_valid():
                disableform.save()
                return render_to_response(
                    "twofactor_admin/registration/twofactor_config_disabled.html",
                    dict(user=request.user),
                    context_instance=RequestContext(request)
                )
        if not resetform:
            resetform = ResetTwoFactorAuthForm(user=request.user)
        if not disableform:
            disableform = DisableTwoFactorAuthForm(user=request.user)

        has_token = bool(UserAuthToken.objects.filter(user=request.user))

        return render_to_response(
            "twofactor_admin/registration/twofactor_config.html",
            dict(
                resetform=resetform,
                disableform=disableform,
                has_token=has_token
            ),
            context_instance=RequestContext(request)
        )