diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-05-09 13:01:46 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:21:00 +0100 |
commit | 1ab3835e539f19e88c2f606808b3109a137ad411 (patch) | |
tree | f380af0e7d422028d5e297df62dc490eeac802b9 /ishtar_common/utils.py | |
parent | 559029fcfaf976e2d662528fcbbe297b90dd0a9b (diff) | |
download | Ishtar-1ab3835e539f19e88c2f606808b3109a137ad411.tar.bz2 Ishtar-1ab3835e539f19e88c2f606808b3109a137ad411.zip |
Fix permission check
Diffstat (limited to 'ishtar_common/utils.py')
-rw-r--r-- | ishtar_common/utils.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index 89700eaad..3202afede 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -46,6 +46,7 @@ from django import forms from django.apps import apps from django.conf import settings from django.conf.urls import url +from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from django.contrib.gis.geos import GEOSGeometry from django.contrib.sessions.backends.db import SessionStore @@ -243,7 +244,11 @@ def check_model_access_control(request, model, available_perms=None): allowed = True own = False return allowed, own - for perm, lbl in model._meta.permissions: + q = Permission.objects.filter( + content_type__app_label=model._meta.app_label, + content_type__model=model._meta.model_name + ) + for perm in q.values_list("codename", flat=True): if perm not in available_perms: continue if ishtaruser.person.has_right(perm, session=request.session): |