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