def new_password(request): """Create a new password for a user.""" try: token = request.GET["token"] except KeyError: return redirect(reverse("zds.pages.views.home")) token = get_object_or_404(TokenForgotPassword, token=token) if request.method == "POST": form = NewPasswordForm(token.user.username, request.POST) if form.is_valid(): data = form.data password = data["password"] # User can't confirm his request if it is too late. if datetime.now() > token.date_end: return render_template("member/new_password/failed.html") token.user.set_password(password) token.user.save() token.delete() return render_template("member/new_password/success.html") else: return render_template("member/new_password.html", {"form": form}) form = NewPasswordForm(identifier=token.user.username) return render_template("member/new_password/index.html", {"form": form})
def new_password(request): """Create a new password for a user.""" try: token = request.GET["token"] except KeyError: return redirect(reverse("zds.pages.views.home")) token = get_object_or_404(TokenForgotPassword, token=token) if request.method == "POST": form = NewPasswordForm(token.user.username, request.POST) if form.is_valid(): data = form.data password = data["password"] # User can't confirm his request if it is too late. if datetime.now() > token.date_end: return render_template("member/new_password/failed.html") token.user.set_password(password) token.user.save() token.delete() return render_template("member/new_password/success.html") else: return render_template("member/new_password.html", {"form": form}) form = NewPasswordForm(identifier=token.user.username) return render_template("member/new_password/index.html", {"form": form})
def reset_password(request, key): profile = RegistrationProfile.objects\ .get_user(key, only_activated=False) user = profile.user if request.method == "POST": form = NewPasswordForm(request.POST, request.FILES) if form.is_valid(): user = authenticate(username=user.email) login(request, user) user.set_password(form.cleaned_data['password1']) user.save() return redirect(reverse('home')) else: form = NewPasswordForm() return locals()