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)
def filter_permissions ( self , search ) : 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 ) ) return search . query ( 'bool' , should = filters )
Filter given query based on permissions of the user in the request.

        :param search: ElasticSearch query object