def reset_password(request): user = User.objects.get(id = request.user.id) if request.method == "POST": form = ResetPasswordForm(data=request.POST) if form.is_valid(): new_password = form.cleaned_data.get('password') user.set_password(new_password) user.save() return HttpResponseRedirect(reverse('index')) else: form = ResetPasswordForm() return render(request, 'reset_password.html', {'form':form})
def password(request): if request.user.is_authenticated(): form = ResetPasswordForm() if request.method=="POST": form = ResetPasswordForm(request.POST) if form.is_valid(): clean = form.cleaned_data if clean['password'] == clean['repeat_password']: request.user.set_password(clean['password']) request.user.save() return HttpResponseRedirect("/accounts/profile/") return render_to_response("main/reset_password.html", locals(), context_instance=RequestContext(request)) else: form = EmailForm() if request.method=="POST": form = EmailForm(request.POST) if form.is_valid(): clean = form.cleaned_data email = clean['email'] user = User.objects.get(email = email) temp_date = datetime.datetime.now() user.get_profile().temp_hash = str(temp_date) user.get_profile().save() m = hashlib.sha224(str(temp_date)).hexdigest() rel_url = "/accounts/pw_rst/"+str(user.id)+"/"+m+"/" link_url = request.build_absolute_uri(rel_url) print link_url subject, from_email, to = 'Password Reset' , 'Idea Otter<*****@*****.**>', '*****@*****.**' text_content = 'Hey,\n\n You (or someone else) has asked to reset your password. Click on the url to it\n\n ' +link_url +'\n\n' html_content = '<h2>Password Reset</h2><p>You requested a password reset</p><p>Click <a href="'+link_url+'">here</a>!</p>' print text_content print html_content msg = EmailMultiAlternatives(subject, text_content, from_email, [email]) msg.attach_alternative(html_content, "text/html") print msg msg.send() return render_to_response("main/lost_password.html", locals(), context_instance=RequestContext(request))
def reset_password_step0(request): form = ResetPasswordForm() if request.method == 'POST': form = ResetPasswordForm(request.POST) if form.is_valid(): token = Token() token.user = User.objects.get(email=form.cleaned_data.get('email')) token.save() link = request.build_absolute_uri(reverse('reset-password-step1', args=[token.token])) send_mail('Reset password', settings.RESET_PASSWORD_EMAIL % (link,), '*****@*****.**', [token.user.email, ]) messages.add_message(request, messages.SUCCESS, _('Please click the password reset link which was sent to your email')) return redirect('login_view') return render(request, 'app/reset-password/reset-password-step0.html', locals())
def password_reset(request, user_id,hashed): if request.method=="POST": form = ResetPasswordForm(request.POST) if form.is_valid(): clean = form.cleaned_data if clean['password'] == clean['repeat_password']: user = User.objects.get(id = user_id) temp_date = user.get_profile().temp_hash m = hashlib.sha224(str(temp_date)).hexdigest() if m != hashed: return HttpResponseRedirect("/") user.set_password(clean['password']) user.save() return HttpResponseRedirect("/") else: messages.error(request, "Please make sure the passwords are the same") form = ResetPasswordForm() return render_to_response("main/reset_password.html", locals(), context_instance=RequestContext(request))