From 92db09d3b5028a4b60541b7a628b579487c51638 Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Sun, 28 Jun 2020 12:58:40 +0200 Subject: [PATCH] Use both approaches in predicate --- aleksis/core/util/predicates.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aleksis/core/util/predicates.py b/aleksis/core/util/predicates.py index b43f54468..ab8806788 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 -- GitLab