Exemple #1
0
def session_exceed_time(req):
    if req.method == 'GET':
        req.session['login_from'] = req.META.get(
            'HTTP_REFERER', '/')  #记住来源的url,如果没有则设置为首页('/')
        return render(req, "session_exceed_time.html")
    else:
        if 'sure' in req.POST:
            mTools = Tools()
            mTools.delSession(req, 'user_id')
            mTools.delSession(req, 'login_id')
            return HttpResponseRedirect('/')
Exemple #2
0
def send_phone_verify_code_post(request, phone):
    # TODO:向手机号发送验证码
    mTools = Tools()
    if request.method == "POST":
        verifyCode = mSend_verify_code.getVerifyCode()

        result = mSend_verify_code.sendVerifyCode(phone, verifyCode)
        if result == True:  #成功发送验证码
            request.session[
                'findingByPhoneVerifyCode'] = verifyCode  #将验证码保存到session中
            return HttpResponse("1")
        else:  #发送验证码失败
            mTools.delSession(request, 'phoneSetPasswordByPhone')
            return HttpResponse("0")
    else:
        return handler404(request)
Exemple #3
0
def verify_login(req):
    if req.method == 'POST':
        #获取表单用户名和其密码
        user_name = req.POST.get('userName', '')
        password = req.POST.get('password', '')
        avoid_login = req.POST.get('avoidLogin', '0')  # 免登陆

        mTools = Tools()
        user_ip = mTools.get_client_ip(req)  #获取用户的IP
        user_id = mLogin.login(
            user_ip, user_name, password
        )  #返回0表示验证失败,返回1表示手机号或者密码有错;返回登录活动记录表的id表示登录成功,返回404表示登录被限制
        if user_id == LoginStatus.SERVER_ERROR:  #服务器出错
            return handler500(req)
        elif user_id == LoginStatus.WRONG:  #返回1表示手机号或者密码有错
            return HttpResponse('0')
        elif user_id == LoginStatus.ERROR_EXCEED:  #登录时,错误次数超过6次,锁住IP,返回404
            return HttpResponse('2')
        elif user_id == LoginStatus.IS_BLACK:  #该账号已经被拉黑
            return HttpResponse('3')
        else:  #验证成功
            #user_have_login = mTools.getSession(req,'phone')
            #if user_have_login == result:
            #     return HttpResponse('该用户已经登录,如果要重新登录,请先前往去退出该账号。')

            id = mLogin.activity_log(user_id, user_ip)
            if id == 0:
                return handler500(req)

            if avoid_login == '1':
                req.session.set_expiry(7 * 24 * 60 * 60)  #一周免登陆

            req.session['user_id'] = user_id  #建立一个会话
            req.session['login_id'] = id  #用来在退出时,找到相应的登录记录,从而修改登录退出的时间
            result = mLogout.timeout(id, user_id)  #假设会话过期
            if result == 0:
                return handler500(req)

            url = mTools.getSession(req, 'login_from')
            mTools.delSession(req, 'login_from')
            if url is None:
                url = "/"  #重定向到首页
            #重定向到来源的url
            #return HttpResponseRedirect("/")
            return HttpResponse("1")
    else:
        return handler404(req)  #404 请求错误
Exemple #4
0
def my_logout(req):
    mTools = Tools()
    user_id = mTools.getSession(
        req,
        'user_id')  #调用account.account_manage模块的类Tools的getSession()函数来获取当前会话的id
    if user_id is None:
        return HttpResponseRedirect('/sessionExceedTime/')

    login_id = mTools.getSession(req, 'login_id')

    result_code = mLogout.logout(login_id, user_id)
    if result_code == 0:
        return handler500(req)
    elif result_code == 666:
        mTools.delSession(req, 'user_id')
        mTools.delSession(req, 'login_id')
        return HttpResponseRedirect("/")
Exemple #5
0
def set_new_password_by_phone(request, new_password):
    mTools = Tools()
    if request.method == "POST":
        #new_password = request.POST.get("newPassword",None)
        #if new_password is None:
        #    return HttpResponse("0")
        phone = mTools.getSession(request, 'phoneSetPasswordByPhone')
        if phone is None:
            return HttpResponse("超时,请返回重新验证身份")

        result_code = mFind_password.findPWByPhone(
            phone, new_password)  #调用这个函数来帮忙用户找回密码
        if result_code == 0:
            return HttpResponse("0")
        elif result_code == 666:
            mTools.delSession(request, 'findingByPhoneVerifyCode')  #会话结束
            mTools.delSession(request, 'phoneSetPasswordByPhone')  #会话结束
            return HttpResponse("1")
    else:
        return handler404(request)
Exemple #6
0
def verify_register(req):
    if req.method == 'POST':  #点击注册按钮,需要全面检查
        mTools = Tools()

        user_name = req.POST.get('userName', '')
        phone = req.POST.get('registerPhoneNumber', '')
        password = req.POST.get('password', '')
        myverifyCode = req.POST.get('verifyCode', None)  #获取表单的验证码

        #验证码验证
        verifyCode = mTools.getSession(req, 'verifyCode')  #获取会话的验证码
        if myverifyCode != verifyCode:  #验证码不对
            return HttpResponse('0')
        else:
            mTools.delSession(req, 'verifyCode')

        phones = mTools.getSession(req, "phones")
        flag = False
        for i in range(len(phones)):  #判断输入的电话号码是否是受到了邀请
            if phones[i] == phone:
                flag = True
                break
        if flag == False:  #电话号码不存在,返回1.没有受到邀请(尽管邀请码正确,但是可能是看到别人的或者猜中的)
            return HttpResponse('0')

        user_ip = mTools.get_client_ip(req)  #获取用户的IP
        user_id = mRegister.register(
            user_name, phone, password,
            user_ip)  #调用该函数处理这个url.数据库出错,返回0;用户已经存在,返回1;成功则返回用户的id
        if user_id == 0:
            return handler500(req)
        elif user_id == -1:  #用户已经存在
            return HttpResponse('0')
        else:
            mTools.delSession(req, 'phones')  #数据传递完毕,删除该会话
            mTools.delSession(req, 'verifyCode')  #验证完毕,删除该验证码会话

            login_id = mRegister.finishRegister(
                user_ip, user_id)  #调用这个函数来记录用户注册成功后的活动记录,与记录登录活动记录一样
            if login_id == 0:
                return handler500(req)
            else:
                req.session['user_id'] = user_id  #建立一个会话
                req.session[
                    'login_id'] = login_id  #用来在退出时,找到相应的登录记录,从而修改登录退出的时间
                return HttpResponse('1')
    else:
        return handler404(req)  #404 请求错误
Exemple #7
0
def sure_publish(req):
    #确认发布
    mTools = Tools()
    user_id = mTools.getSession(
        req,
        'user_id')  #调用account.account_manage模块的类Tools的getSession()函数来获取当前会话的id
    if user_id is None:
        return HttpResponseRedirect('/sessionExceedTime/')

    if req.method == 'POST':
        content = getFormData(req)  #获取表单数据

        #content=mTools.getSession(req,'publish_info') #从会话中取出数据

        operation_id_modify = mTools.getSession(req, 'operation_id_modify')
        if operation_id_modify != None:  #表示要进行修改发布的有效期的车的信息,在这里需要删除该车,然后重新插入
            modify_result_code = mPublish_car.updateData(
                operation_id_modify, content)
            #modify_result_code=deletePublishValidTimeCar(operation_id_modify,current_user_phone_number)
            if modify_result_code == 0:
                return handler500(req)  #修改发布的有效期的车的信息失败

        operation_id_againPublish = mTools.getSession(
            req, 'operation_id_againPublish')
        if operation_id_againPublish != None:  #表示要进行重新发布过期的车的信息,在这里需要删除该车,然后重新插入
            againPublish_result_code = mPublish_car.deletePublishInalidTimeCar(
                operation_id_againPublish)
            if againPublish_result_code == 0:
                return handler500(req)  #重新发布过期的车的信息失败
            else:
                result_code = mPublish_car.firstPublishInsertData(
                    user_id, content)  #插入数据
                if result_code == 0:
                    return handler500(req)  #发布失败

        result_code = mPublish_car.firstPublishInsertData(user_id,
                                                          content)  #插入数据
        if result_code == 0:
            return handler500(req)  #发布失败

        mTools.delSession(req, 'publish_info')  #删除会话
        mTools.delSession(req, 'operation_id_modify')
        mTools.delSession(req, 'operation_id_againPublish')
        return HttpResponse("1")
    else:
        return handler404(req)  #404 请求错误
Exemple #8
0
def deleteAllSession(req):
        mTools = Tools()
        mTools.delSession(req,'car_type')
        mTools.delSession(req,'car_brand')
        mTools.delSession(req,'car_series')
        mTools.delSession(req,'car_model')
        mTools.delSession(req,'province')
        mTools.delSession(req,'city')
        #mTools.delSession(req,'sell_area')
        mTools.delSession(req,'pay_method')
        mTools.delSession(req,'delivery_type')
        mTools.delSession(req,'color')
        mTools.delSession(req,'method_logistics')
Exemple #9
0
def deleteSession(req,what):
        mTools = Tools()
        mTools.delSession(req,what)

        car_type = req.GET.get("carType",None)        #车辆类型

        car_brand = req.GET.get("brand",None)     #品牌
        car_series = req.GET.get("series",None)   #车系
        car_model = req.GET.get("carModel",None)     #车款

        city = req.GET.get("city",None)             #城市
        province = req.GET.get("province",None)     #省份
        #sell_area = req.GET.get("sell_area",None)     #销售区域

        pay_method = req.GET.get("payment",None)   #付款方式
        delivery_type = req.GET.get("shipType",None)        #期货类型
        color = req.GET.get("color",None)                        #颜色
        method_logistics = req.GET.get("logistics",None)  #物流方式

        if car_type is not None:
           mTools.delSession(req,'car_type')

        if car_brand is not None:
           mTools.delSession(req,'car_brand')

        if car_series is not None:
           mTools.delSession(req,'car_series')

        if car_model is not None:
           mTools.delSession(req,'car_model')

        if province is not None:
           mTools.delSession(req,'province')

        if city is not None:
           mTools.delSession(req,'city')

        #if sell_area is not None:
        #   mTools.delSession(req,'sell_area')

        if pay_method is not None:
           mTools.delSession(req,'pay_method')

        if delivery_type is not None:
           mTools.delSession(req,'delivery_type')

        if color is not None:
           mTools.delSession(req,'color')

        if method_logistics is not None:
           mTools.delSession(req,'method_logistics')