diff options
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): |