docs: def filter_permissions(self, search):
          """Filter given query based on permissions of the user in the request.
  
          :param search: ElasticSearch query object
  
          """
          user = self.request.user
          if user.is_superuser:
              return search
          if user.is_anonymous:
              user = get_anonymous_user()
  
          filters = [Q('match', users_with_permissions=user.pk)]
          filters.extend([
              Q('match', groups_with_permissions=group.pk) for group in user.groups.all()
          ])
          filters.append(Q('match', public_permission=True))
  
          # `minimum_should_match` is set to 1 by default
          return search.query('bool', should=filters)