Пример #1
0
def userContro(page=None, per_page=None,u_id=None, u_account=None, u_name=None, u_phone=None,
               u_wechat=None, u_qq=None, u_type=None, u_statu=None):
    if request.method == 'GET':

        return '123'


    # 登陆接口
    elif request.method == 'POST':
        print(1)
        # 管理员添加用户

        if request.form.get('u_account') and request.form.get('u_name') and request.form.get(
                'u_type') and request.form.get('u_phone') and request.form.get('u_password') and request.form.get('u_repassword'):
            # elif request.form.get('u_type'):
            account = request.form.get('u_account')
            name = request.form.get('u_name')
            type = request.form.get('u_type')
            phone = request.form.get('u_phone')
            password = request.form.get('u_password')
            repassword = request.form.get('u_repassword')
            if User.query.filter(User.u_account == account).first():
                return jsonify({'msg': 'u_account repeat', 'code': 1005}), 404
            elif User.query.filter(User.u_phone == phone).first():
                return jsonify({'msg': 'u_phone repeat', 'code': 1005}), 404
            elif password != repassword:
                return jsonify({'msg': 'wrong repassword', 'code': 1003}), 404
            else:
                user = User()
                user.u_phone = phone
                user.u_account = account
                user.u_type = type
                user.u_password = password
                user.u_name = name
                user.regist_time = datetime.date.today()
                db.session.add(user)
                db.session.commit()
                return jsonify({'msg': 'login success', 'code': 1000},
                               user.model_to_dict()), 200
        # 帐号密码登陆
        if request.form.get('name'):

            name = request.form.get('name')
            password = request.form.get('password')
            repassword = request.form.get('repassword')
            user = User.query.filter_by(name=name).first()
            if user:
                if user.check_password(password):
                    session['u_id'] = user.id
                    return jsonify({'msg': 'login success', 'code': 1000},
                                   user.model_to_dict()), 200
                else:
                    return jsonify(
                        {'msg': 'wrong password', 'code': 1001}), 200
            else:
                if password == repassword:
                    user = User()
                    user.name = name
                    user.password = generate_password_hash(password)
                    db.session.add(user)
                    db.session.commit()
                    return jsonify(
                        {'msg': 'regist success', 'code': 1000},
                        user.model_to_dict()), 200
                else:
                    return jsonify(
                        {'msg': 'wrong repassword', 'code': 1003}), 200

        # 短信登陆
        elif request.form.get('u_phone') and request.form.get('u_verify_code'):
            phone = request.form.get('u_phone')
            u_verify_code = request.form.get('u_verify_code')
            user = User.query.filter_by(u_phone=phone).first()
            if user:
                verify_code = cache.get(phone)
                if verify_code == u_verify_code:
                    session['u_id'] = user.u_id
                    return jsonify({'msg': 'login success', 'code': 1000}
                                   ), 200
                else:
                    return jsonify(
                        {'msg': 'wrong verify_code', 'code': 1003}), 404
            else:
                verify_code = cache.get(phone)
                if verify_code == u_verify_code:
                    user = User()
                    user.u_phone = phone
                    user.regist_time = datetime.date.today()
                    db.session.add(user)
                    db.session.commit()
                    return jsonify({'msg': 'regist success', 'code': 1000},
                                   user.model_to_dict()), 200
                else:
                    return jsonify(
                        {'msg': 'wrong verify_code', 'code': 1003}), 404
        # 发送验证码
        elif request.form.get('u_phone'):
            phone = request.form.get('u_phone')
            verify_code = send_msg(phone)
            cache.set(phone, verify_code, 180)
            return jsonify({'msg': 'send_msg success', 'code': 1001}), 200

        else:
            return jsonify({'msg': 'error', 'code': 1005}), 404

    elif request.method == 'PUT':
        if request.form.get('u_id'):
            u_id = request.form.get('u_id')
            user = User.query.get(u_id)
            u_phone = user.u_phone
            u_wechat = user.u_wechat
            u_chid = user.u_chid
            u_chkey = user.u_chkey
            print(u_id,u_phone,u_wechat,u_qq)

            if user:
                if request.form.get('u_name'):
                    user.u_name = request.form.get('u_name')
                    db.session.add(user)


                if request.form.get('u_phone'):
                    phone = request.form.get('u_phone')
                    if phone == u_phone:
                        pass
                    elif User.query.filter_by(u_phone=phone).first():
                        return jsonify(
                            {'msg': 'u_phone repeat', 'code': 1005}), 404
                    else:
                        user.u_phone = phone
                        db.session.add(user)


                if request.form.get('u_company'):
                    user.u_company = request.form.get('u_company')
                    db.session.add(user)


                if request.form.get('u_wechat'):
                    wechat = request.form.get('u_wechat')
                    u = User.query.filter_by(u_wechat=wechat).first()

                    if not u:
                        user.u_wechat = wechat
                        db.session.add(user)
                    elif int(u_id) == u.u_id:
                        pass
                    else:
                        return jsonify(
                            {'msg': 'u_wechat repeat', 'code': 1005}), 400


                if request.form.get('u_qq'):
                    qq = request.form.get('u_qq')
                    u = User.query.filter_by(u_qq=qq).first()
                    if not u:
                        user.u_qq = qq
                        db.session.add(user)
                    elif int(u_id) == u.u_id:
                            pass
                    else:
                        return jsonify(
                            {'msg': 'u_qq repeat', 'code': 1005}), 412


                if request.form.get('u_chid'):
                    user.u_chid = request.form.get('u_chid')
                    db.session.add(user)


                if request.form.get('u_chkey'):
                    user.u_chkey = request.form.get('u_chkey')
                    db.session.add(user)


                if request.form.get('u_type'):
                    user.u_type = request.form.get('u_type')
                    db.session.add(user)


                if request.form.get('u_password'):
                    user.u_password = request.form.get('u_password')
                    db.session.add(user)


                if request.files.get('u_icon'):
                    user.u_icon = request.files.get('u_icon')
                    db.session.add(user)


                if request.form.get('u_statu'):
                    user.u_statu = request.form.get('u_statu')
                    db.session.add(user)


                if request.form.get('u_statu'):
                    user.u_statu = request.form.get('u_statu')
                    db.session.add(user)
                    db.session.commit()
                return jsonify(
                    {'msg': 'change success', 'code': 1000}), 200

                # else:
                #     return jsonify({'msg': 'no change', 'code': 1000}), 200
            else:
                return jsonify({'msg': 'no user', 'code': 1004}), 404
        else:
            return jsonify({'msg': 'no u_id', 'code': 1004}), 405

    elif request.method == 'DELETE':
        if request.form.get('u_id'):
            u_id = request.form.get('u_id')
            user = User.query.get(u_id)
            if user:
                user.u_statu = 2
                db.session.add(user)
                try:
                    db.session.commit()
                    return jsonify(
                        {'msg': 'user write-off', 'code': 1000}), 202
                except:

                    return jsonify({'msg': 'delete error', 'code': 1004}), 404
            else:

                return jsonify({'msg': 'no user', 'code': 1004}), 404
        else:

            return jsonify({'msg': 'no u_id', 'code': 1004}), 404
    elif request.method == 'PATCH':
        if request.form.get('u_id'):
            u_id = request.form.get('u_id')
            user = User.query.get(u_id)
            if user:
                user.u_statu = 1
                db.session.add(user)
                try:
                    db.session.commit()
                    return jsonify(
                        {'msg': 'user write-off', 'code': 1000}), 202
                except:

                    return jsonify({'msg': 'delete error', 'code': 1004}), 404
            else:

                return jsonify({'msg': 'no user', 'code': 1004}), 404
        else:

            return jsonify({'msg': 'no u_id', 'code': 1004}), 404
    else:

        return jsonify({'msg': 'Method Error', 'code': 1004}), 404
Пример #2
0
 def test_password_hashing(self):
     u = User(username='******')
     u.set_password('cat')
     self.assertFalse(u.check_password('dog'))
     self.assertTrue(u.check_password('cat'))