Beispiel #1
0
def create_client(user, params):
    name = params.get("name", "")
    if not name or len(name) > 30:
        return {"error_code":20251, "msg":"name invalid"}

    #team = Team.select().where(Team.user == user, Team.name == name).first()
    team = Team.select().where(Team.user == user).first()
    if team:
        return {"error_code":20252, "msg":"team is exists and must one"}

    team_id = GUID.guid()
    team = Team()
    team.id = team_id
    team.user = user
    team.name = name
    team.status = "normal"
    team.team_type = 'client'
    team.logo = widget.logo()
    team.save(force_insert=True)

    user.to_req = True
    user.identify = "c%s" % team.id
    user.save()

    team_profile = TeamProfile()
    team_profile.team = team
    team_profile.save()

    #Member.create(user=user, team=team, mtype='owner')
    return {"error_code":0, "msg":"ok"}
Beispiel #2
0
def create_client(user, params):
    name = params.get("name", "")
    if not name or len(name) > 30:
        return {"error_code": 20251, "msg": "name invalid"}

    #team = Team.select().where(Team.user == user, Team.name == name).first()
    team = Team.select().where(Team.user == user).first()
    if team:
        return {"error_code": 20252, "msg": "team is exists and must one"}

    team_id = GUID.guid()
    team = Team()
    team.id = team_id
    team.user = user
    team.name = name
    team.status = "normal"
    team.team_type = 'client'
    team.logo = widget.logo()
    team.save(force_insert=True)

    user.to_req = True
    user.identify = "c%s" % team.id
    user.save()

    team_profile = TeamProfile()
    team_profile.team = team
    team_profile.save()

    #Member.create(user=user, team=team, mtype='owner')
    return {"error_code": 0, "msg": "ok"}
Beispiel #3
0
def register(params, device):
    rtype = params.get('rtype', None)
    name = params.get('name', None)
    phone = params.get('phone', None)
    password = params.get('password', None)
    vcode = params.get('vcode', None)
    uname = params.get('username', '')
    cname = params.get('cname', '')
    notice = params.get('notice', "true")

    if not phone or not password or not vcode or not name or not rtype or not notice or not rtype.isdigit():
        return {"error_code":20021, "msg":"parameters required"}

    rtype = int(rtype)
    if not validate.is_phone(phone):
        return {"error_code":20022, "msg":"phone invalid"}

    # freelancer: 1, client: 2, client_person: 3
    if rtype not in [1, 2, 3]:
        return {"error_code":20022, "msg":"user type invalid"}

    if rtype == 2 and not cname or len(cname) > 100:
        return {"error_code":20022, "msg":"user type invalid or cname too long"}

    if not validate.is_verify_code(vcode):
        return {"error_code":20024, "msg":"verify code invalid"}
    
    if User.select().where(User.phone == phone).first():
        return {"error_code":20025, "msg":"user is exists"}

    if rtype != 1:
        username = phone
    else:
        # freelancer do not use username, just use phone to register
        # username = uname
        username = phone
    
    if not utils.is_username(username):
        return {"error_code":20023, "msg":"username invalid"}

    if User.select().where(User.username == username).first():
        return {"error_code":20025, "msg":"user is exists"}

    res = verify_code(phone=phone, code=vcode)
    if res['error_code'] != 0:
        return res
    
    user_id = GUID.guid()
    team_id = GUID.guid()
    with database.atomic() as txn:
        try:
            pwd, salt = generate_password(password.encode('utf-8'))
            user = User()
            user.id = user_id
            user.username = username
            user.password = pwd
            user.salt = salt
            user.phone = phone
            #user.verifycode = vcode
            user.save(force_insert=True)

            profile = Profile()
            profile.user = user
            profile.name = name
            profile.avatar = widget.avatar()

            if notice == "true":
                profile.is_notice = True
            profile.save()

            party = Party()
            party.user = user
            party.vip = False
            party.connects = 60
            party.agency_connects = 60
            party.save()

            margin = Margin()
            margin.user = user
            margin.save()

            if rtype == 1:
                user.identify = 'f%s' % user.id
                user.app_identify = 'f%s' % user.id
                user.status = "unactive"
                user.to_dev = True
                user.to_req = False
                user.save()

                queue.to_queue({"type":"user_register", "user_id":user.id})
            else:
                team = Team()
                team.id = team_id
                team.user = user
                if rtype == 2:
                    team.name = cname
                else:
                    team.name = "个人需求方"
                team.team_type = 'client'
                team.status = "normal"
                team.logo = widget.logo()
                team.save(force_insert=True)

                team_profile = TeamProfile()
                team_profile.team = team
                team_profile.phone = phone
                team_profile.save()

                user.identify = 'c%s' % team.id
                user.app_identify = 'c%s' % team.id
                user.status = "active"
                user.to_req = True
                user.to_dev = False
                user.save()

                queue.to_queue({"type":"user_register", "user_id":user.id, "team_id":team.id})
        except Exception, e:
            logger.error(traceback.format_exc())
            txn.rollback()
            return {"error_code":20026, "msg":"signup error"}
Beispiel #4
0
def register(params, device):
    rtype = params.get('rtype', None)
    name = params.get('name', None)
    phone = params.get('phone', None)
    password = params.get('password', None)
    vcode = params.get('vcode', None)
    uname = params.get('username', '')
    cname = params.get('cname', '')
    notice = params.get('notice', "true")

    if not phone or not password or not vcode or not name or not rtype or not notice or not rtype.isdigit(
    ):
        return {"error_code": 20021, "msg": "parameters required"}

    rtype = int(rtype)
    if not validate.is_phone(phone):
        return {"error_code": 20022, "msg": "phone invalid"}

    # freelancer: 1, client: 2, client_person: 3
    if rtype not in [1, 2, 3]:
        return {"error_code": 20022, "msg": "user type invalid"}

    if rtype == 2 and not cname or len(cname) > 100:
        return {
            "error_code": 20022,
            "msg": "user type invalid or cname too long"
        }

    if not validate.is_verify_code(vcode):
        return {"error_code": 20024, "msg": "verify code invalid"}

    if User.select().where(User.phone == phone).first():
        return {"error_code": 20025, "msg": "user is exists"}

    if rtype != 1:
        username = phone
    else:
        # freelancer do not use username, just use phone to register
        # username = uname
        username = phone

    if not utils.is_username(username):
        return {"error_code": 20023, "msg": "username invalid"}

    if User.select().where(User.username == username).first():
        return {"error_code": 20025, "msg": "user is exists"}

    res = verify_code(phone=phone, code=vcode)
    if res['error_code'] != 0:
        return res

    user_id = GUID.guid()
    team_id = GUID.guid()
    with database.atomic() as txn:
        try:
            pwd, salt = generate_password(password.encode('utf-8'))
            user = User()
            user.id = user_id
            user.username = username
            user.password = pwd
            user.salt = salt
            user.phone = phone
            #user.verifycode = vcode
            user.save(force_insert=True)

            profile = Profile()
            profile.user = user
            profile.name = name
            profile.avatar = widget.avatar()

            if notice == "true":
                profile.is_notice = True
            profile.save()

            party = Party()
            party.user = user
            party.vip = False
            party.connects = 60
            party.agency_connects = 60
            party.save()

            margin = Margin()
            margin.user = user
            margin.save()

            if rtype == 1:
                user.identify = 'f%s' % user.id
                user.app_identify = 'f%s' % user.id
                user.status = "unactive"
                user.to_dev = True
                user.to_req = False
                user.save()

                queue.to_queue({"type": "user_register", "user_id": user.id})
            else:
                team = Team()
                team.id = team_id
                team.user = user
                if rtype == 2:
                    team.name = cname
                else:
                    team.name = "个人需求方"
                team.team_type = 'client'
                team.status = "normal"
                team.logo = widget.logo()
                team.save(force_insert=True)

                team_profile = TeamProfile()
                team_profile.team = team
                team_profile.phone = phone
                team_profile.save()

                user.identify = 'c%s' % team.id
                user.app_identify = 'c%s' % team.id
                user.status = "active"
                user.to_req = True
                user.to_dev = False
                user.save()

                queue.to_queue({
                    "type": "user_register",
                    "user_id": user.id,
                    "team_id": team.id
                })
        except Exception, e:
            logger.error(traceback.format_exc())
            txn.rollback()
            return {"error_code": 20026, "msg": "signup error"}