Devinwon / article

0 stars 0 forks source link

Django2.0——reset password #17

Open Devinwon opened 6 years ago

Devinwon commented 6 years ago
@login_required()
def updatepwd(request):
    context={}
    updatepwdfm=Updatepwdfm()
    context["updatepwdfm"]=updatepwdfm
    if request.method=="GET":
        return render(request,'login/updatepwd.html',context)
    else:
        updatepwdfm=Updatepwdfm(request.POST)
        if updatepwdfm.is_valid():
            oldpwd=request.POST.get("oldpwd")
            # check oldpwd is right?
            userObj=User.objects.get(id=request.user.id)
            if userObj.check_password(oldpwd):
                set_pwd=request.POST.get("set_pwd")
                confirm_pwd=request.POST.get("confirm_pwd")
                if set_pwd==confirm_pwd:
                    userObj.set_password(set_pwd)
                    userObj.save()
                    #process  auto login and redirect
                    auth.login(request,userObj)
                    request.session["username"]=userObj.username
                    return HttpResponseRedirect('/')
                else:
                    err="New passwords match failed"
                    context["err"]=err
                    return render(request,"login/updatepwd.html",context)
            else:
                err="Old password is invalid"
                context["err"]=err
                return render(request,"login/updatepwd.html",context)
        return render(request,"login/updatepwd.html",context)