summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-11-15 16:40:43 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:45:55 +0100
commit94eb112df3af9ab93d0d2c9a4fc2e3e0d86d08e1 (patch)
treeeed993121bbfa9677710db36bbd047c86a740267
parentf3764eea1ac4a6cdb12095322a00fd93d377c2c5 (diff)
downloadIshtar-94eb112df3af9ab93d0d2c9a4fc2e3e0d86d08e1.tar.bz2
Ishtar-94eb112df3af9ab93d0d2c9a4fc2e3e0d86d08e1.zip
🩹 simplify permission management
-rw-r--r--ishtar_common/models.py2
-rw-r--r--ishtar_common/utils.py9
2 files changed, 4 insertions, 7 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index f46331eb5..7ecbe9928 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -3234,6 +3234,7 @@ def text_format(text, text_format):
class BiographicalNote(BaseHistorizedItem, ValueGetter, MainItem):
SLUG = "biographicalnote"
+ SHOW_URL = f"show-{SLUG}"
denomination = models.TextField(_("Denomination"))
slug = models.SlugField(
_("Textual ID"),
@@ -4060,6 +4061,7 @@ class IshtarUser(FullSearch):
]
# cascade permission to treat at the end
last_model_names = [
+ ('archaeological_operations', 'administrativeact'),
("ishtar_common", "document"),
("ishtar_common", "geovectordata"),
("ishtar_common", "import"),
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index 5536bc84b..e3a16e50b 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -304,13 +304,8 @@ def check_model_access_control(request, model, available_perms=None):
allowed = True
own = False
return allowed, own
- q = Permission.objects.filter(
- content_type__app_label=model._meta.app_label,
- content_type__model=model._meta.model_name
- )
- for app_name, perm in q.values_list("content_type__app_label", "codename"):
- if perm not in available_perms:
- continue
+ app_name = model._meta.app_label
+ for perm in available_perms:
if ishtaruser.has_permission(f"{app_name}.{perm}"):
allowed = True
if "_own_" not in perm: