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)
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)
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)
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)
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)
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)
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)