Exemplo n.º 1
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument('country_code',
                            type=str,
                            default='',
                            location='json')
        parser.add_argument('mobile',
                            type=str,
                            required=True,
                            nullable=False,
                            location='json')
        parser.add_argument('password',
                            type=str,
                            required=True,
                            nullable=False,
                            location='json')
        parser.add_argument('security_password',
                            type=str,
                            required=True,
                            nullable=False,
                            location='json')
        parser.add_argument('source', type=str, default='', location='json')
        parser.add_argument('sponsor',
                            type=str,
                            required=True,
                            nullable=False,
                            location='json')
        parsed_args = parser.parse_args()

        sponsor = User.query.filter(
            User.mobile == parsed_args['sponsor']).first()

        if sponsor is None:
            abort(400,
                  code=1001,
                  message={'sponsor': 'sponsor does not exist'})

        if User.query.filter(User.mobile == parsed_args['mobile']).first():
            abort(400, code=1011, message={'uid': 'uid already exists'})

        user = User(id=str(uuid.uuid4()),
                    country_code=parsed_args['country_code'],
                    mobile=parsed_args['mobile'],
                    source=parsed_args['source'],
                    sponsor_id=sponsor.id)
        user.set_password(parsed_args['password'])
        user.set_security_password(parsed_args['security_password'])

        user.generate_auth_token()

        db.session.add(user)
        db.session.flush()
        user.set_uid()
        user.update_state(g_user_state_type.EVALUATION)

        user.activate()

        db.session.commit()
        return user
Exemplo n.º 2
0
Arquivo: user.py Projeto: q25979/tdb99
    def post(self):
        parser = CustomRequestParser()
        parser.add_argument('country_code',
                            type=str,
                            default='86',
                            location='json')
        parser.add_argument('mobile',
                            type=str,
                            required=True,
                            nullable=False,
                            location='json')
        parser.add_argument('password',
                            type=str,
                            required=True,
                            nullable=False,
                            location='json')
        parser.add_argument('security_password',
                            type=str,
                            required=True,
                            nullable=False,
                            location='json')
        # parser.add_argument('pin_code', type=str, required=True, nullable=False, location='json')
        parser.add_argument('source', type=str, default='', location='json')
        parser.add_argument('sponsor_uid',
                            type=str,
                            required=True,
                            nullable=False,
                            location='json')
        # parser.add_argument('uuid', type=str, required=True, nullable=False, location='json')
        # parser.add_argument('captcha_pin_code', type=str, required=True, nullable=False, location='json')
        parsed_args = parser.parse_args()

        # CaptchaPinCode.flask_check(parsed_args['uuid'], parsed_args['captcha_pin_code'])

        sponsor = User.query.filter(
            User.uid == parsed_args['sponsor_uid']).first()

        if not sponsor:
            abort(400,
                  code=1001,
                  message={'sponsor': 'sponsor does not exist'})

        # 测试环境,不验证手机验证码
        # product_name = str(current_app.config['PRODUCT_NAME'])

        # country_code = parsed_args['country_code']
        # if parsed_args['country_code']:
        #     if "+" in parsed_args['country_code']:
        #         country_code = parsed_args['country_code'][1:]

        if member_user_mobile_exists(parsed_args['mobile']):
            abort(400, code=1011, message={'mobile': 'mobile already exists'})

        # SmsPinCode.flask_check(parsed_args['mobile'], parsed_args['pin_code'])

        user = User(
            id=str(uuid.uuid4()),
            # country_code=country_code,
            mobile=parsed_args['mobile'],
            source=parsed_args['source'],
            sponsor_id=sponsor.id)

        # user.set_uid() # 项目要求完善资料后生成
        user.set_password(parsed_args['password'])
        user.set_security_password(parsed_args['security_password'])
        user.generate_auth_token()
        db.session.add(user)
        db.session.flush()
        user.activate()
        db.session.commit()

        cookie = dump_cookie(key='token',
                             value=user.token,
                             max_age=datetime.timedelta(days=365))
        return user, {'Set-Cookie': cookie}