diff --git a/netbox/utilities/permissions.py b/netbox/utilities/permissions.py index 893cc619e..b6e707abe 100644 --- a/netbox/utilities/permissions.py +++ b/netbox/utilities/permissions.py @@ -1,7 +1,10 @@ from django.conf import settings +from django.apps import apps from django.db.models import Q from django.utils.translation import gettext_lazy as _ +from users.constants import CONSTRAINT_TOKEN_USER + __all__ = ( 'get_permission_for_model', 'permission_is_exempt', @@ -93,6 +96,9 @@ def qs_filter_from_constraints(constraints, tokens=None): def _replace_tokens(value, tokens): if type(value) is list: return list(map(lambda v: tokens.get(v, v), value)) + User = apps.get_model('users.User') + if value == CONSTRAINT_TOKEN_USER and type(tokens[CONSTRAINT_TOKEN_USER] is User): + return tokens[CONSTRAINT_TOKEN_USER].id return tokens.get(value, value) params = Q()