예제 #1
0
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get("email", "")
         send_register_email(email, "forget")
         return render(request, 'send_success.html')
     return render(request, 'forgetpwd.html', {"forget_form": forget_form})
예제 #2
0
파일: views.py 프로젝트: zh0zh/boxuegu
    def post(self, request):
        # 1、获取前端传递的表单数据
        data = request.POST
        # 2、验证表单数据
        forget_form = ForgetForm(data)
        res = forget_form.is_valid()  # 验证成功返回True,验证失败返回False

        if res:
            # 验证成功,则执行相应业务逻辑操作,这里就直接返回验证成功后的字段数据
            forget_data = forget_form.cleaned_data
            email = forget_data['email']
            user = UserProfile.objects.get(email=email)
            # csrftoken = forget_data['csrfmiddlewaretoken']

            # 调用celery发送邮件任务
            token = bx_signature.dumps({'user_id': user.id},
                                       expiry.EMAIL_ACTIVATE_EXPIRES)
            url = settings.EMAIL_ACTIVE_URL + '?token=%s' % token
            send_user_email.delay(email, url)

            return render(request, 'send_success.html')

        else:
            # 验证失败,则在注册模板中通过register_form.errors获取错误
            return render(request, 'forgetpwd.html',
                          {'forget_form': forget_form})
예제 #3
0
파일: views.py 프로젝트: zhangzj399/demo1
    def post(self, request):
        # 接收参数
        data = request.POST

        # 验证数据的合法性
        form = ForgetForm(data)
        if form.is_valid():
            # 获取清洗后的数据
            cleaned = form.cleaned_data
            # 将密码进行加密
            # 通过id查询数据
            user_id = request.session.get('ID')
            # 取出清洗后的手机号
            mobile = cleaned.get('mobile')
            # 取出清洗后的密码
            password2 = set_password(cleaned.get('password2'))
            # 修改到数据库
            # 验证原密码是否存在,不能用get,用filter
            if Users.objects.filter(mobile=mobile, id=user_id).exists():
                # 更新密码
                Users.objects.filter(id=user_id).update(password=password2)
                # 跳转到登录页
                return redirect('users:登录')
        else:
            # 错误
            return render(request,
                          'users/forgetpassword.html',
                          context={
                              'errors': form.errors,
                          })
예제 #4
0
파일: views.py 프로젝트: fenildf/novaword
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get("email", "")
         # 检查用户是否存在
         user_query = UserProfile.objects.filter(
             Q(email=email) | Q(mobile_phone=email))
         if not user_query:
             return render(request, "forget_password.html", {
                 "forget_form": forget_form,
                 "msg": u"用户不存在"
             })
         user = user_query.get()
         if user.email == email:
             send_register_email_async.delay(email, "forget",
                                             request.get_host())
             return render(request, "send_success.html")
         elif user.mobile_phone == email:
             # 发送短消息来重置密码
             c = SmsClient(settings.WILDDOG_APP_ID,
                           settings.WILDDOG_API_KEY)
             c.send_code(str(email), "100000", None)
             return render(request, "verify_sms.html", {"mobile": email})
     else:
         return render(request, "forget_password.html",
                       {"forget_form": forget_form})
예제 #5
0
파일: views.py 프로젝트: trentzhou/novaword
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get("email", "")
         # 检查用户是否存在
         user_query = UserProfile.objects.filter(
             Q(email=email) | Q(mobile_phone=email))
         if not user_query:
             return render(request, "forget_password.html", {
                 "forget_form": forget_form,
                 "msg": u"用户不存在"
             })
         user = user_query.get()
         if user.email == email:
             send_register_email_async.delay(email, "forget",
                                             get_base_url(request))
             return render(request, "send_success.html")
         elif user.mobile_phone == email:
             # 发送短消息来重置密码
             c = AliyunSms()
             c.send_sms(str(email), AliyunSms.MSG_TYPE_FORGET)
             return render(request, "verify_sms.html", {"mobile": email})
     else:
         return render(request, "forget_password.html",
                       {"forget_form": forget_form})
예제 #6
0
    def post(self, request):
        data = request.POST
        # 2、验证表单数据
        forget_form = ForgetForm(data)
        res = forget_form.is_valid()  # 验证成功返回True,验证失败返回False

        if res:

            # 验证成功,则执行相应业务逻辑操作,这里就直接返回验证成功后的字段数据
            # 获取验证成功后的字段
            email = forget_form.cleaned_data['email']
            try:
                user = UserProfile.objects.get(
                    username=email,
                )
            except Exception as e:
                return render(request, 'forgetpwd.html', {'forget_errors': {"error": ' 用户不存在'}})
            from django.core.mail import send_mail
            # send_mail的参数分别是  邮件标题,邮件内容,发件箱(settings.py中设置过的那个),收件箱列表(可以发送给多个人),失败静默(若发送失败,报错提示我们)
            send_mail(subject='博学谷密码重置', message='', from_email=settings.EMAIL_FROM,
                      recipient_list=[email],
                      html_message='请点击你的链接重置你的密码<p><a href="%s">%s<a></p>' % (
                          'http://127.0.0.1:8000/reset/' + SecretOauth().dumps(email),
                          'http://127.0.0.1:8000/reset/' + SecretOauth().dumps(email)),
                      fail_silently=False)
            return render(request, 'send_success.html')
        # 验证失败,则在注册模板中通过register_form.errors获取错误
        return render(request, 'forgetpwd.html', {'forget_form': forget_form})
예제 #7
0
    def post(self, request):
        forget_pwd_form = ForgetForm(request.POST)

        if forget_pwd_form.is_valid():
            email = forget_pwd_form.cleaned_data.get("email")
            user = User.objects.get(email=email)

            if user:  # 说明用户存在, 向用户的邮箱发邮件,修改用户的密码
                flag = send_email(email, email_type="forget")
                if flag:
                    # 邮件发送成功
                    return render(request, "email_success.html",
                                  {"msg": u"修改密码邮件发送成功,请前往邮箱查看"})
                else:
                    return render(request, "email_success.html",
                                  {"msg": u"邮件发送失败,请重试"})
            else:
                return render(request, "forgetpwd.html", {
                    "forget_pwd_form": forget_pwd_form,
                    "msg": u"邮件地址错误"
                })

        else:  # 表单错误
            return render(request, "forgetpwd.html",
                          {"forget_pwd_form": forget_pwd_form})
예제 #8
0
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get('email', '')
         send_register_email(email, 'forget')
         return render(request, 'send_success.html')
     else:
         return render(request, 'forgetpwd.html', {'forget_form': forget_form})
예제 #9
0
 def post(self, request):
     forget_form = ForgetForm(request.POST)      # 此处传的是dic
     if forget_form.is_valid():
         email = request.POST.get('email', '')
         send_register_email(email, 'forget')        # 发送邮件,类型为forget
         return render(request, "send_success.html")    # 邮件发送成功提示
     else:
         return render(request, "forgetpwd.html", {'forget_form': forget_form})
예제 #10
0
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get('email')
         send_register_email(email, 'forget')
         return HttpResponse('邮件已经发送,请查收')
     else:
         return render(request, 'forgetpwd.html', locals())
예제 #11
0
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get("email", "")
         send_register_eamil(email, "forget")
         return render(request, 'login.html', {"msg": "重置密码邮件已发送,请注意查收"})
     else:
         return render(request, 'forgetpwd.html',
                       {"forget_from": forget_form})
예제 #12
0
 def post(self, request):
     forget_Form = ForgetForm(request.POST)
     if forget_Form.is_valid():
         email = request.POST.get("email", "")
         send_register_email(email, "forget")
         return render(request, "send_ok.html")
     else:
         return render(request, "forgetpwd.html",
                       {'forget_form': forget_Form})
예제 #13
0
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get('email', '')
         send_register_email(email, "forget")
         return render(request, "send_success.html", {})
     else:
         return render(request, "forgetpwd.html",
                       {"forget_form": forget_form})
예제 #14
0
 def post(request):
     form = ForgetForm(request.POST)
     if form.is_valid():
         user = UserProfile.objects.filter(email=request.POST['email'])
         if len(user) == 0:
             return render(request, "forgetpwd.html",
                           {"msg": "Wrong email address"})
         send_retrieve_password_mail(user[0])
         return render(request, "index.html", {})
     return render(request, "forgetpwd.html", {"forget_form": form})
예제 #15
0
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get('email', '')
         if UserProfile.objects.filter(email=email):
             send_register_email(email=email, send_type='forget')
             return render(request, 'send_success.html')
         else:
             return render(request, 'forget_pwd.html', {'msg': '账号不存在!', 'forget_form': forget_form})
     else:
         return render(request, 'forget_pwd.html', {'forget_form': forget_form})
예제 #16
0
 def post(self, request):
     # 验证忘记密码页面表单
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get('email', '')
         # 发送找回密码链接(重用注册激活链接)
         send_register_email(email, 'forget')
         # 发送完邮件返回登录页面,提示邮件发送成功
         return render(request, 'login.html', {'msg': '找回密码邮件已发送,请查收'})
     else:
         # 表单验证失败
         return render(request, 'forgetpwd.html',
                       {'forget_form': forget_form})
예제 #17
0
파일: views.py 프로젝트: ljm9104/mxonline3
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     # form验证合法情况下取出email
     if forget_form.is_valid():
         email = request.POST.get("email", "")
         # 发送找回密码邮件
         send_register_eamil(email, "forget")
         # 发送完毕返回登录页面并显示发送邮件成功。
         return render(request, "login.html", {"msg": "重置密码邮件已发送,请注意查收"})
     # 如果表单验证失败也就是他验证码输错等。
     else:
         return render(request, "forgetpwd.html",
                       {"forget_from": forget_form})
예제 #18
0
 def post(self, request):
     form = ForgetForm(request.POST)
     if form.is_valid():
         phone = form.cleaned_data.get("mobile")
         user = Users.objects.get(phone=phone)
         pwd = form.cleaned_data.get("password")
         p = hashlib.md5(pwd.encode("utf-8"))
         user.password = p.hexdigest()
         user.save()
         return redirect("user:登录")
     else:
         context = {"errors": form.errors}
         return render(request, "user/forgetpassword.html", context)
예제 #19
0
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get("email", "")
         # 发送找回密码邮件
         msg = send_register_email(email, "forget")
         # 发送完毕返回登录页面并显示发送邮件成功。
         if msg == "success":
             return render(request, "login.html", {"msg": "重置密码邮件已发送,请注意查收"})
             # 如果表单验证失败也就是他验证码输错等。
         else:
             return render(request, "forgetpwd.html", {"forget_form": forget_form, "msg": "请检查邮箱是否正确"})
     else:
         return render(request, "forgetpwd.html", {"forget_form": forget_form, "msg": "请检查邮箱是否正确"})
예제 #20
0
파일: views.py 프로젝트: zy5622139/MxOnline
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get('email', '')
         if not UserProfile.objects.filter(email=email):
             return render(request, 'forgetpwd.html', {
                 'forget_form': forget_form,
                 'msg': '用户不存在'
             })
         send_register_email(email, 'forget')
         return HttpResponse('邮件已发送')
     else:
         return render(request, 'forgetpwd.html', {
             'forget_form': forget_form,
             'msg': '请检查红框内容'
         })
예제 #21
0
    def post(self, request):
        forget_form = ForgetForm(request.POST)
        if forget_form.is_valid():
            email = request.POST.get("email", "")

            try:
                user = UserProfile.objects.get(email=email)
                send_register_email(email, 1)
                return render(request, "users/send_success.html")

            except Exception:
                return render(request, "users/register.html",
                              {"msg": "该账号尚未注册"})

        else:
            return render(request, "users/forgetpwd.html", {
                "forget_form": forget_form,
                "msg": "找回密码申请提交失败,请重试"
            })
예제 #22
0
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get('email', '')
         results = UserProfile.objects.filter(email=email)
         if not results:
             return render(request, 'forgetpwd.html', {
                 'msg': '邮箱未注册!',
                 'forget_form': forget_form
             })
         else:
             # 发送邮件
             send_email_thread = SendEmailThread(email=email, type='forget')
             send_email_thread.start()
             #send_register_eamil(email, 'forget')
             return render(request, "login.html",
                           {"msg": "重置密码邮件已发送,请注意查收!"})
     else:
         return render(request, 'forgetpwd.html',
                       {'forget_form': forget_form})
예제 #23
0
파일: views.py 프로젝트: nestmilk/MxOnline
 def post(self, request):
     forget_form = ForgetForm(request.POST)
     if forget_form.is_valid():
         email = request.POST.get("email", "")
         try:
             if UserProfile.objects.get(email=email):
                 pass
         except UserProfile.DoesNotExist:
             return render(request, "forgetpwd.html", {
                 "forget_form": forget_form,
                 "msg": "用户并不存在"
             })
         send_status = send_register_email(email, "forget")
         if send_status:
             return render(request, "send_success.html")
         else:
             return render(request, "forgetpwd.html", {
                 "forget_form": forget_form,
                 "msg": "邮件发送失败"
             })
     else:
         return render(request, "forgetpwd.html",
                       {"forget_form": forget_form})