Exemplo n.º 1
0
def list_groups():
    query = qb.from_params(request.args)
    total = Group.count(query)
    paging = Page.from_params(request.args, total)
    groups = Group.find_all(query,
                            page=paging.page,
                            page_size=paging.page_size)

    if groups:
        return jsonify(status='ok',
                       page=paging.page,
                       pageSize=paging.page_size,
                       pages=paging.pages,
                       more=paging.has_more,
                       groups=[group.serialize for group in groups],
                       total=total)
    else:
        return jsonify(status='ok',
                       page=paging.page,
                       pageSize=paging.page_size,
                       pages=paging.pages,
                       more=paging.has_more,
                       message='not found',
                       groups=[],
                       total=0)
Exemplo n.º 2
0
def get_group(group_id):
    group = Group.find_by_id(group_id)

    if group:
        return jsonify(status='ok', total=1, group=group.serialize)
    else:
        raise ApiError('not found', 404)
Exemplo n.º 3
0
def create_group():
    try:
        group = Group.parse(request.json)
    except ValueError as e:
        raise ApiError(str(e), 400)

    try:
        group = group.create()
    except Exception as e:
        raise ApiError(str(e), 500)

    admin_audit_trail.send(current_app._get_current_object(),
                           event='group-created',
                           message='',
                           user=g.login,
                           customers=g.customers,
                           scopes=g.scopes,
                           resource_id=group.id,
                           type='group',
                           request=request)

    if group:
        return jsonify(status='ok', id=group.id, group=group.serialize), 201
    else:
        raise ApiError('create user group failed', 500)
Exemplo n.º 4
0
def list_groups():
    query = qb.from_params(request.args)
    groups = Group.find_all(query)

    if groups:
        return jsonify(status='ok',
                       groups=[group.serialize for group in groups],
                       total=len(groups))
    else:
        return jsonify(status='ok', message='not found', groups=[], total=0)
Exemplo n.º 5
0
def get_group_users(group_id):
    if not Group.find_by_id(group_id):
        raise ApiError('not found', 404)

    group_users = GroupUsers.find_by_id(group_id)

    if group_users:
        return jsonify(status='ok',
                       users=[user.serialize for user in group_users],
                       total=len(group_users))
    else:
        return jsonify(status='ok', users=[], total=0)
Exemplo n.º 6
0
def delete_group(group_id):
    group = Group.find_by_id(group_id)

    if not group:
        raise ApiError('not found', 404)

    admin_audit_trail.send(current_app._get_current_object(), event='group-deleted', message='', user=g.login,
                           customers=g.customers, scopes=g.scopes, resource_id=group.id, type='group', request=request)

    if group.delete():
        return jsonify(status='ok')
    else:
        raise ApiError('failed to delete user group', 500)
Exemplo n.º 7
0
def remove_user_from_group(group_id, user_id):
    group = Group.find_by_id(group_id)
    if not group:
        raise ApiError('not found', 404)

    user = User.find_by_id(user_id)
    if not user:
        raise ApiError('invalid user', 400)

    admin_audit_trail.send(current_app._get_current_object(), event='user-attributes-updated', message='', user=g.login,
                           customers=g.customers, scopes=g.scopes, resource_id=user.id, type='user', request=request)

    if group.remove_user(user_id):
        return jsonify(status='ok')
    else:
        raise ApiError('failed to remove user from group', 500)
Exemplo n.º 8
0
def update_group(group_id):
    if not request.json:
        raise ApiError('nothing to change', 400)

    group = Group.find_by_id(group_id)

    if not group:
        raise ApiError('not found', 404)

    admin_audit_trail.send(current_app._get_current_object(),
                           event='group-updated',
                           message='',
                           user=g.user,
                           customers=g.customers,
                           scopes=g.scopes,
                           resource_id=group.id,
                           type='group',
                           request=request)

    if group.update(**request.json):
        return jsonify(status='ok')
    else:
        raise ApiError('failed to update user group', 500)
Exemplo n.º 9
0
 def get_groups(self):
     return [Group.from_db(g) for g in db.get_groups_by_user(self.id)]