コード例 #1
0
def create_group():
    """Create a group."""
    groups = GroupSchema(strict=True, many=True).load(request.json, partial=True).data
    created_groups = []
    for group in groups:
        ensure_unused_group_name(group['name'])
        group['owner_id'] = request.user.user_id
        group['user_defined'] = True
        group = local.model.create_group(group)
        local.model.add_user_in_group(request.user.user_id, group['uuid'], is_admin=True)
        created_groups.append(group)
    return GroupSchema(many=True).dump(created_groups).data
コード例 #2
0
def fetch_group(group_spec):
    """Fetch a single group."""
    group = get_group_info(group_spec, need_admin=False, access_all_groups=True)
    load_group_members(group)
    document = GroupSchema().dump(group).data
    include_group_relationships(document, [group])
    return document
コード例 #3
0
def fetch_groups():
    """Fetch list of groups readable by the authenticated user."""
    if request.user.user_id == local.model.root_user_id:
        groups = local.model.batch_get_all_groups(None, {'user_defined': True}, None)
    else:
        groups = local.model.batch_get_all_groups(
            None,
            {'owner_id': request.user.user_id, 'user_defined': True},
            {'user_id': request.user.user_id},
        )

    for group in groups:
        load_group_members(group)

    document = GroupSchema(many=True).dump(groups).data
    include_group_relationships(document, groups)
    return document