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})
Example #2
0
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))
Example #3
0
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())
Example #4
0
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))