summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-11-07 17:31:57 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:43:49 +0100
commitce7d642318f4e4c57dd552915b12eef360d33d70 (patch)
tree64e499aec7087f8cca3159251c4bd107bedc416d /ishtar_common/models.py
parent89ff92664ff06a974e37c15ab663394271ac4a10 (diff)
downloadIshtar-ce7d642318f4e4c57dd552915b12eef360d33d70.tar.bz2
Ishtar-ce7d642318f4e4c57dd552915b12eef360d33d70.zip
✨ permissions refactoring: settings for upstream items management
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py36
1 files changed, 30 insertions, 6 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 045bab1cc..eb9e73150 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -3607,12 +3607,14 @@ class UserProfile(models.Model):
item_ids = []
model_class = content_type.model_class()
if permission_request.include_associated_items:
- item_ids += model_class.objects.filter(
- ishtar_users__pk=ishtar_user.pk
- ).values_list("pk", flat=True)
- item_ids += model_class.objects.filter(
- history_creator_id=ishtar_user.pk
- ).values_list("pk", flat=True)
+ if hasattr(model_class, "ishtar_users"):
+ item_ids += model_class.objects.filter(
+ ishtar_users__pk=ishtar_user.pk
+ ).values_list("pk", flat=True)
+ if hasattr(model_class, "history_creator_id"):
+ item_ids += model_class.objects.filter(
+ history_creator_id=ishtar_user.pk
+ ).values_list("pk", flat=True)
if content_type.model == "find" and \
permission_type in ("view", "change"):
Find = apps.get_model("archaeological_finds", "Find")
@@ -4510,6 +4512,28 @@ class Document(
"towns",
"areas",
]
+ UPPER_PERMISSIONS = [
+ (("archaeological_files", "file"),
+ "files__pk"),
+ (("archaeological_operations", "operation"),
+ "operations__pk"),
+ (("archaeological_operations", "archaeologicalsite"),
+ "sites__pk"),
+ (("archaeological_operations", "administrativeact"),
+ "administrativeacts__pk"),
+ (("archaeological_context_records", "contextrecord"),
+ "context_records__pk"),
+ (("archaeological_finds", "find"),
+ "finds__pk"),
+ (("archaeological_finds", "treatmentfile"),
+ "treatment_files__pk"),
+ (("archaeological_finds", "treatment"),
+ "treatments__pk"),
+ (("archaeological_warehouse", "warehouse"),
+ "warehouses__pk"),
+ (("archaeological_warehouse", "container"),
+ "containers__pk"),
+ ]
SLUG = "document"
LINK_SPLIT = "<||>"