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