summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-12-12 19:18:54 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-12-12 19:18:54 +0100
commit36142d0d21e2aca26059244c14274727479863a6 (patch)
treebb8e737659c91a827ea04fa234caf926658efe7f
parent21f788cac55e84373c985acc7b9ace2a9eb82dc2 (diff)
downloadIshtar-36142d0d21e2aca26059244c14274727479863a6.tar.bz2
Ishtar-36142d0d21e2aca26059244c14274727479863a6.zip
Fix document access filter
-rw-r--r--ishtar_common/models.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 1850f86c8..6eb36acdb 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -3893,11 +3893,18 @@ class Document(OwnPerms, ImageModel, FullSearch, Imported):
def get_query_owns(cls, ishtaruser):
Operation = cls.operations.rel.related_model
ArchaeologicalSite = cls.sites.rel.related_model
- q = cls._construct_query_own(
- 'operations__', Operation._get_query_owns_dicts(ishtaruser)
- ) | cls._construct_query_own(
- 'sites__', ArchaeologicalSite._get_query_owns_dicts(ishtaruser)
+ query_own_list = (
+ ('operations__', Operation._get_query_owns_dicts(ishtaruser)),
+ ('sites__', ArchaeologicalSite._get_query_owns_dicts(ishtaruser)),
)
+ q = None
+ for prefix, owns in query_own_list:
+ subq = cls._construct_query_own(prefix, owns)
+ if subq:
+ if not q:
+ q = subq
+ else:
+ q |= subq
return q
def get_associated_operation(self):