示例#1
0
def delete_groups():
    """Delete groups."""
    group_ids = get_resource_ids(request.json, 'groups')

    # Check permissions first
    for group_id in group_ids:
        get_group_info(group_id, need_admin=True)

    # Delete groups
    for group_id in group_ids:
        local.model.delete_group(group_id)

    abort(httplib.NO_CONTENT)
示例#2
0
def delete_groups():
    """Delete groups."""
    group_ids = get_resource_ids(request.json, 'groups')

    # Check permissions first
    for group_id in group_ids:
        get_group_info(group_id, need_admin=True)

    # Delete groups
    for group_id in group_ids:
        local.model.delete_group(group_id)

    abort(http.client.NO_CONTENT)
示例#3
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
示例#4
0
def delete_group_members(group_spec):
    # For now, both routes will delete a member entirely from the group.
    user_ids = get_resource_ids(request.json, 'users')
    group = get_group_info(group_spec, need_admin=True)
    for user_id in user_ids:
        local.model.delete_user_in_group(user_id, group['uuid'])
    abort(http.client.NO_CONTENT)
示例#5
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
示例#6
0
def delete_group_members(group_spec):
    # For now, both routes will delete a member entirely from the group.
    user_ids = get_resource_ids(request.json, 'users')
    group = get_group_info(group_spec, need_admin=True)
    for user_id in user_ids:
        local.model.delete_user_in_group(user_id, group['uuid'])
    abort(httplib.NO_CONTENT)
示例#7
0
def add_group_members_helper(group_spec, is_admin):
    user_ids = get_resource_ids(request.json, 'users')
    group_uuid = get_group_info(group_spec, need_admin=True)['uuid']
    members = set(m['user_id'] for m in local.model.batch_get_user_in_group(
        user_id=user_ids, group_uuid=group_uuid))
    for user_id in user_ids:
        if user_id in members:
            local.model.update_user_in_group(user_id, group_uuid, is_admin)
        else:
            local.model.add_user_in_group(user_id, group_uuid, is_admin)
    return request.json
示例#8
0
def add_group_members_helper(group_spec, is_admin):
    user_ids = get_resource_ids(request.json, 'users')
    group_info = get_group_info(group_spec, need_admin=True, access_all_groups=False)
    group_uuid = group_info['uuid']
    group_owner = group_info['owner_id']
    if group_owner in user_ids:
        raise UsageError("Cannot relegate the group owner into non-admin status")
    members = set(
        m['user_id']
        for m in local.model.batch_get_user_in_group(user_id=user_ids, group_uuid=group_uuid)
    )
    for user_id in user_ids:
        if user_id in members:
            local.model.update_user_in_group(user_id, group_uuid, is_admin)
        else:
            local.model.add_user_in_group(user_id, group_uuid, is_admin)
    return request.json
示例#9
0
def add_group_members_helper(group_spec, is_admin):
    user_ids = get_resource_ids(request.json, 'users')
    group_info = get_group_info(group_spec, need_admin=True, access_all_groups=False)
    group_uuid = group_info['uuid']
    group_owner = group_info['owner_id']
    if group_owner in user_ids:
        raise UsageError("Cannot relegate the group owner into non-admin status")
    members = set(
        m['user_id']
        for m in local.model.batch_get_user_in_group(user_id=user_ids, group_uuid=group_uuid)
    )
    for user_id in user_ids:
        if user_id in members:
            local.model.update_user_in_group(user_id, group_uuid, is_admin)
        else:
            local.model.add_user_in_group(user_id, group_uuid, is_admin)
    return request.json