Esempio n. 1
0
def register():
    """
    register a new user using invite code, note that a newly registered user is not administrator, you need to
    use an admin user to promote it
    :return: response
    """
    content = request.get_data(True, as_text=True)
    register_data = json.loads(content)
    if ('name' in register_data) and ('password' in register_data) and (
            'password_repeat' in register_data) and (
                'invite_code' in register_data) and ('email' in register_data):
        name = register_data['name']
        password = register_data['password']
        password_repeat = register_data['password_repeat']
        email = register_data['email']
        invite_code = register_data['invite_code']
        if password != password_repeat:
            raise ClientError(ClientError.PASSWORD_MISMATCH)
        if UserCredential.register_user(name=name,
                                        password=password,
                                        email=email,
                                        invite_code=invite_code):
            # login automatically
            credential = UserCredential.login_user(name, password)
            login_user(credential, remember=False)
            # send email
            credential.send_confirm_email()
            return json_resp({'message': 'ok'}, 201)
    else:
        raise ClientError(ClientError.INVALID_REQUEST)
Esempio n. 2
0
def register():
    """
    register a new user using invite code, note that a newly registered user is not administrator, you need to
    use an admin user to promote it
    :return: response
    """
    content = request.get_data(True, as_text=True)
    register_data = json.loads(content)
    if ('name' in register_data) and ('password' in register_data) and ('password_repeat' in register_data) and ('invite_code' in register_data) and ('email' in register_data):
        name = register_data['name']
        password = register_data['password']
        password_repeat = register_data['password_repeat']
        email = register_data['email']
        invite_code = register_data['invite_code']
        if password != password_repeat:
            raise ClientError(ClientError.PASSWORD_MISMATCH)
        if UserCredential.register_user(name=name, password=password, email=email, invite_code=invite_code):
            # login automatically
            credential = UserCredential.login_user(name, password)
            login_user(credential, remember=False)
            # send email
            credential.send_confirm_email()
            return json_resp({'message': 'ok'}, 201)
    else:
        raise ClientError(ClientError.INVALID_REQUEST)
Esempio n. 3
0
def request_reset_pass():
    data = json.loads(request.get_data(True, as_text=True))
    if 'email' in data:
        UserCredential.send_pass_reset_email(data['email'])
        return json_resp({'message': 'ok'})
    else:
        raise ClientError(ClientError.INVALID_REQUEST)
Esempio n. 4
0
def request_reset_pass():
    data = json.loads(request.get_data(True, as_text=True))
    if 'email' in data:
        UserCredential.send_pass_reset_email(data['email'])
        return json_resp({'message': 'ok'})
    else:
        raise ClientError(ClientError.INVALID_REQUEST)
Esempio n. 5
0
def reset_pass():
    """
    reset password using token    
    """
    data = json.loads(request.get_data(True, as_text=True))
    if ('new_pass' in data) and ('new_pass_repeat' in data) and ('token' in data):
        new_pass = data['new_pass']
        new_pass_repeat = data['new_pass_repeat']
        if new_pass != new_pass_repeat:
            raise ClientError(ClientError.PASSWORD_MISMATCH)
        return UserCredential.update_password_with_token(new_pass, token=data['token'])
    else:
        raise ClientError(ClientError.INVALID_REQUEST)
Esempio n. 6
0
def reset_pass():
    """
    reset password using token    
    """
    data = json.loads(request.get_data(True, as_text=True))
    if ('new_pass' in data) and ('new_pass_repeat' in data) and ('token'
                                                                 in data):
        new_pass = data['new_pass']
        new_pass_repeat = data['new_pass_repeat']
        if new_pass != new_pass_repeat:
            raise ClientError(ClientError.PASSWORD_MISMATCH)
        return UserCredential.update_password_with_token(new_pass,
                                                         token=data['token'])
    else:
        raise ClientError(ClientError.INVALID_REQUEST)
Esempio n. 7
0
def login():
    """
    login a user
    :return: response
    """
    content = request.get_data(True, as_text=True)
    login_data = json.loads(content)
    if ('name' in login_data) and ('password' in login_data):
        name = login_data['name']
        password = login_data['password']
        remember = login_data['remember'] if 'remember' in login_data else False
        credential = UserCredential.login_user(name, password)
        login_user(credential, remember=remember)
        return json_resp({'msg': 'OK'})
    else:
        raise ClientError(ClientError.INVALID_REQUEST)
Esempio n. 8
0
def login():
    '''
    login a user
    :return: response
    '''
    content = request.get_data(True, as_text=True)
    login_data = json.loads(content)
    if ('name' in login_data) and ('password' in login_data):
        name = login_data['name']
        password = login_data['password']
        remember = login_data['remember'] if 'remember' in login_data else False
        credential = UserCredential.login_user(name, password)
        login_user(credential, remember=remember)
        return json_resp({'msg': 'OK'})
    else:
        raise ClientError(ClientError.INVALID_REQUEST)
Esempio n. 9
0
def reset_pass():
    '''
    reset a user password, invite_code is required
    :return:
    '''
    content = request.get_data(True, as_text=True)
    user_data = json.loads(content)
    if ('name' in user_data) and ('password' in user_data) and (
            'password_repeat' in user_data) and ('invite_code' in user_data):
        name = user_data['name']
        password = user_data['password']
        password_repeat = user_data['password_repeat']
        invite_code = user_data['invite_code']
        if password != password_repeat:
            raise ClientError('password not match')
        if UserCredential.reset_pass(name, password, invite_code):
            return json_resp({'msg': 'OK'})
    else:
        raise ClientError('invalid parameters')
Esempio n. 10
0
def register():
    '''
    register a new user using invite code, note that a newly registered user is not administrator, you need to
    use an admin user to promote it
    :return: response
    '''
    content = request.get_data(True, as_text=True)
    register_data = json.loads(content)
    if ('name' in register_data) and ('password' in register_data) and (
            'password_repeat' in register_data) and ('invite_code'
                                                     in register_data):
        name = register_data['name']
        password = register_data['password']
        password_repeat = register_data['password_repeat']
        invite_code = register_data['invite_code']
        if password != password_repeat:
            raise ClientError(ClientError.PASSWORD_MISMATCH)
        if UserCredential.register_user(name, password, invite_code):
            return json_resp({'msg': 'OK'})
    else:
        raise ClientError(ClientError.INVALID_REQUEST)
Esempio n. 11
0
def reset_pass():
    '''
    reset a user password, invite_code is required
    :return:
    '''
    try:
        content = request.get_data(True, as_text=True)
        user_data = json.loads(content)
        if ('name' in user_data) and ('password' in user_data) and ('password_repeat' in user_data) and ('invite_code' in user_data):
            name = user_data['name']
            password = user_data['password']
            password_repeat = user_data['password_repeat']
            invite_code = user_data['invite_code']
            if password != password_repeat:
                raise ClientError('password not match')
            if UserCredential.reset_pass(name, password, invite_code):
                return json_resp({'msg': 'OK'})
        else:
            raise ClientError('invalid parameters')
    except Exception as exception:
        raise exception
Esempio n. 12
0
def register():
    '''
    register a new user using invite code, note that a newly registered user is not administrator, you need to
    use an admin user to promote it
    :return: response
    '''
    try:
        content = request.get_data(True, as_text=True)
        register_data = json.loads(content)
        if ('name' in register_data) and ('password' in register_data) and ('password_repeat' in register_data) and ('invite_code' in register_data):
            name = register_data['name']
            password = register_data['password']
            password_repeat = register_data['password_repeat']
            invite_code = register_data['invite_code']
            if password != password_repeat:
                raise ClientError(ClientError.PASSWORD_MISMATCH)
            if UserCredential.register_user(name, password, invite_code):
                return json_resp({'msg': 'OK'})
        else:
            raise ClientError(ClientError.INVALID_REQUEST)
    except Exception as exception:
        raise exception
Esempio n. 13
0
def load_user(user_id):
    return UserCredential.get(user_id)
Esempio n. 14
0
def load_user(user_id):
    return UserCredential.get(user_id)