def get_queryset(self):
        '''We want to still be able to modify archived organizations, but they
        shouldn't show up on list views.

        We have an archived query param, where 'true' shows archived, 'false'
        omits them, and 'both' shows both.

        We also have the query params permission_contains and object_id, which
        allow users to filter the teams based on the permissions they
        contain.'''
        queryset = super(BaseTeamViewSet, self).get_queryset()
        if self.action == 'list':
            archived = get_true_false_both(
                self.request.query_params, 'archived', 'false')
            if archived == 'true':
                queryset = queryset.filter(archived=True)
            elif archived == 'false':
                queryset = queryset.filter(archived=False)

            permission = self.request.query_params.get(
                'permission_contains', None)
            if permission is not None:
                queryset = queryset.filter(
                    permissions__type__contains=permission).distinct()

            object_id = self.request.query_params.get('object_id', None)
            if object_id is not None:
                queryset = queryset.filter(
                    permissions__object_id=object_id).distinct()

            namespace = self.request.query_params.get('namespace', None)
            if namespace is not None:
                queryset = queryset.filter(
                    permissions__namespace=namespace).distinct()

            permission = permissions.TeamPermission()
            queryset = [
                team for team in queryset if
                permission.has_object_permission(self.request, self, team)]

        return queryset