예제 #1
0
    def testE_add_exit_user(self):
        request_data = {
            'username': '******',
            'email': '*****@*****.**',
            'password': '******',
            'captcha_key': 4456,
            'captcha_answer': 'ut2x'
        }

        c = CaptchaStore(key=request_data['captcha_key'],
                         answer=request_data['captcha_answer'])
        c.save()

        request = self.factory.post(self.base_url,
                                    data=request_data,
                                    format='json')
        self.view(request)

        c = CaptchaStore(key=request_data['captcha_key'],
                         answer=request_data['captcha_answer'])
        c.save()

        request = self.factory.post(self.base_url,
                                    data=request_data,
                                    format='json')
        res = self.view(request)
        self.assertEqual(res.status_code, status.HTTP_409_CONFLICT)
예제 #2
0
파일: ajax.py 프로젝트: Florence3546/DTS3.0
def send_validate_code(request):
    """发送验证码"""
    result = {'status': 0, 'msg': '网络异常,请稍后刷新重试'}
    try:
        if request.method == 'POST' and request.is_ajax():
            # 验证电话号码
            phone = request.POST.get('phone', '')
            phone_re = re.compile('^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}$')
            is_phone = phone_re.match(phone)
            if is_phone:
                #  判断这个用户存在与否
                is_phone_exist = User.objects.filter(phone=str(phone)).first()
                if is_phone_exist:
                    # # 避免多次发送短信
                    # request.session.set_expiry(180)
                    # phone_session = request.session.get('account_safety', '')
                    # if phone_session:
                    #     result = {
                    #         'status': 0,
                    #         'msg': u'验证码已经发送,请注意查收'
                    #     }
                    #     return JsonResponse(result)
                    # 发送验证码
                    sms_msg = make_sms()
                    c = CaptchaStore()
                    # 把验证码存入session
                    request.session['account_safety'] = sms_msg[1]
                    # 存库
                    c.response = sms_msg[1]
                    c.challenge = phone
                    c.save()
                    result = {'status': 1, 'msg': '验证码已经发送,请注意查收'}
                    # 测试 可不发短信 去CaptchaStore中查看验证码
                    if not settings.DEBUG:
                        send_sms([phone], sms_msg[0])
                        result = {
                            'status': 1,
                            'key': c.hashkey,
                        }
                        return JsonResponse(result)
                else:
                    # result = {
                    #     'status': 0,
                    #     'msg': u'这个电话没有注册,请先注册'
                    # }
                    # return JsonResponse(result)
                    raise Exception('这个电话没有注册,请先注册')
            else:
                result = {'status': 0, 'msg': '请输入正确的电话号码'}
                return JsonResponse(result)
        else:
            raise Exception("请求异常")
    except Exception, e:
        log.exception("send_validate_code raise, Error:%s" % e)
        result = {'status': 0, 'msg': str(e)}
예제 #3
0
def set_captcha(key):
    g = GenCaptcha()
    ans, buffer = g.create_img()
    try:
        # try to get if already there
        s = CaptchaStore.objects.get(key=key)
        s.answer = ans
        s.save()
    except ObjectDoesNotExist:
        # not exist, create new
        s = CaptchaStore(key=key, answer=ans)
        s.save()

    return buffer.read()
예제 #4
0
    def testA_add_user(self):
        request_data = {
            'username': '******',
            'email': '*****@*****.**',
            'password': '******',
            'captcha_key': 1234,
            'captcha_answer': 'unit',
            'extra_data': '{a, b, c}'
        }

        c = CaptchaStore(key=request_data['captcha_key'],
                         answer=request_data['captcha_answer'])
        c.save()

        request = self.factory.post(self.base_url,
                                    data=request_data,
                                    format='json')
        res = self.view(request)
        self.assertEqual(res.status_code, status.HTTP_201_CREATED)
        res_json = res.data
        self.assertEqual(type(res_json['res']['id']), int)
예제 #5
0
파일: ajax.py 프로젝트: Florence3546/DTS3.0
def send_validate_code_new(request):
    """发送验证码"""
    result = {'status': 0, 'msg': '网络异常,请稍后刷新重试'}
    try:
        if request.method == 'POST' and request.is_ajax():
            # 验证电话号码
            phone = request.POST.get('phone', '')
            phone_re = re.compile('^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}$')
            is_phone = phone_re.match(phone)
            if is_phone:
                # 发送验证码
                sms_msg = make_sms()
                c = CaptchaStore()
                # 把验证码存入session
                request.session['account_safety'] = sms_msg[1]
                # 存库
                c.response = sms_msg[1]
                c.challenge = phone
                c.save()
                result = {'status': 1, 'msg': '验证码已经发送,请注意查收'}
                # 测试 可不发短信 去CaptchaStore中查看验证码
                if not settings.DEBUG:
                    send_sms([phone], sms_msg[0])
                    result = {
                        'status': 1,
                        'key': c.hashkey,
                    }
                    return JsonResponse(result)
            else:
                result = {'status': 0, 'msg': '请输入正确的电话号码'}
                return JsonResponse(result)
        else:
            raise Exception("请求异常")
    except Exception, e:
        log.exception("send_validate_code_new raise, Error:%s" % e)
        result = {'status': 0, 'msg': str(e)}