Пример #1
0
def get_account_name(username):
    username_length = current_app.config['USERNAME_LENGTH']
    if not username or not valid_username(username, username_length):
        return error(400, 'Username invalid.')
    account = Account.query.filter(Account.username == username).first()
    if not account:
        return error(404, 'Account not found.')
    data = {'username': account.username, 'super': account.super}
    return success(data)
Пример #2
0
def get_account():
    page = int(request.args.get('page', 1))
    limit = int(request.args.get('limit', 10))
    query = Account.query.paginate(page=page, per_page=limit)
    items, total = query.items, query.total
    data = [{
        'username': account.username,
        'super': account.super,
    } for account in items]
    return success(data, total=total)
Пример #3
0
def get_acls_id(id):
    acls = Acls.query.filter(Acls.id == id).first()
    if not acls:
        return error(404, 'Acls not found.')
    data = {
        'id': acls.id,
        'username': acls.username,
        'topic': acls.topic,
        'rw': acls.rw
    }
    return success(data)
Пример #4
0
def get_acls():
    page = int(request.args.get('page', 1))
    limit = int(request.args.get('limit', 10))
    query = Acls.query.paginate(page=page, per_page=limit)
    items, total = query.items, query.total
    data = [{
        'id': item.id,
        'username': item.username,
        'topic': item.topic,
        'rw': item.rw
    } for item in items]
    return success(data, total=total)
Пример #5
0
def delete_acls(id):
    """delete acls.

    {"id": 12345}
    """
    acls = Acls.query.filter(Acls.id == id).first()
    if not acls:
        return error(404, 'Acls not found.')
    db.session.delete(acls)
    db.session.commit()
    data = {
        'id': acls.id,
        'username': acls.username,
        'topic': acls.topic,
        'rw': acls.rw
    }
    return success(data)
Пример #6
0
def post_account():
    """post account

    request: {
        "username": "******"
        "password": "******"
    }
    """
    json_data = request.get_json()
    username_length = current_app.config['USERNAME_LENGTH']
    password_length = current_app.config['PASSWORD_LENGTH']
    if not json_data or not isinstance(json_data, dict):
        return error(400, 'Json parse error.')
    password = str(json_data.get('password'))
    pwhash = make_hash(password)
    if not password or not valid_password(password, password_length):
        return error(400, 'Password invalid.')
    username = str(json_data.get('username'))
    if username:
        if not valid_password(username, username_length):
            return error(400, 'Username invalid.')
        account = Account.query.filter(Account.username == username).first()
        if account:
            return error(403, 'Account alredy exists.')
        else:
            account = Account(username=username, password=pwhash, super=0)
            db.session.add(account)
            db.session.commit()
    else:
        while 1:
            username = random_username(username_length)
            account = Account.query.filter(
                Account.username == username).first()
            if not account:
                account = Account(username=username, password=pwhash, super=0)
                db.session.add(account)
                db.session.commit()
                break
    data = {'username': account.username, 'super': account.super}
    return success(data)
Пример #7
0
def post_acls():
    """post acls.

    {
        "username": "******",
        "topic": "topic",
        "rw": "rw"
    }
    """
    json_data = request.get_json()
    username_length = current_app.config['USERNAME_LENGTH']
    if not json_data or not isinstance(json_data, dict):
        return error(400, 'Json parse error.')
    username = str(json_data.get('username'))
    if not valid_username(username, username_length):
        return error(400, 'Username not valid.')
    topic = json_data.get('topic')
    rw = json_data.get('rw')
    if not topic or not rw:
        return error(400, 'Topic and rw is required.')
    account = Account.query.filter(Account.username == username).first()
    if not account:
        return error(403, 'Account not exists.')
    acls = Acls.query.filter(Acls.topic == topic,
                             Acls.username == username).first()
    if acls:
        return error(403, 'Acls already exists.')
    acls = Acls(username=username, topic=topic, rw=rw)
    db.session.add(acls)
    db.session.commit()
    data = {
        'id': acls.id,
        'username': acls.username,
        'topic': acls.topic,
        'rw': acls.rw
    }
    return success(data)