Esempio n. 1
0
def save_character(request):
    # only temporary characters can be saved
    if not is_temporary(request.user):
        raise Exception("Only temporary users can be saved")

    player = Player.objects.get(user=request.user)

    form = SaveCharacterForm()
    if request.method == "POST":
        form = SaveCharacterForm(data=request.POST)
        if form.is_valid():
            # start the e-mail confirmation process if necessary
            email = form.cleaned_data["email"]
            if email:
                request_confirmation(request, form.cleaned_data["email"])
                email = "pending confirmation"

            # create the account
            request.user.username = form.cleaned_data["username"]
            request.user.set_password(form.cleaned_data["password"])
            request.user.email = email
            request.user.save()

            # save the character
            player.name = form.cleaned_data["character_name"]
            player.temporary = False
            player.save()

            return HttpResponseRedirect(reverse("accounts_index"))

    return render_to_response(
        "accounts/save_character.html",
        {"form": form, "player": player, "temporary_user": True},
        context_instance=RequestContext(request),
    )
Esempio n. 2
0
def change_email(request):
    if request.method == "POST":
        form = ChangeEmailForm(request.user, request.POST)
        if form.is_valid():
            request_confirmation(request, form.cleaned_data["email"])

            request.user.email = "pending confirmation"
            request.user.save()

            messages.add_message(
                request,
                messages.INFO,
                "A confirmation e-mail has been sent to "
                "%s. Please click the link inside the mail." % request.user.email,
            )

            return HttpResponseRedirect(reverse("accounts_index"))
    else:
        form = ChangeEmailForm(request.user)

    return render_to_response("accounts/change_email.html", {"form": form}, context_instance=RequestContext(request))