diff --git a/aleksis/core/util/predicates.py b/aleksis/core/util/predicates.py index b43f544688536b752f3d05ce9f7dc820aeb87627..ab88067887fac153d70d62718bcffcf175444db0 100644 --- a/aleksis/core/util/predicates.py +++ b/aleksis/core/util/predicates.py @@ -4,6 +4,7 @@ from django.db.models import Model from django.http import HttpRequest from guardian.backends import ObjectPermissionBackend +from guardian.shortcuts import get_objects_for_user from rules import predicate from ..models import Group @@ -62,8 +63,7 @@ def has_any_object(perm: str, klass): @predicate(name) def fn(user: User) -> bool: - objs = queryset_rules_filter(user, klass.objects.all(), perm) - return len(objs) > 0 + return get_objects_for_user(user, perm, klass).exists() or queryset_rules_filter(user, klass.objects.all(), perm).exists() return fn