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), )
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))