@@ 1,6 1,7 @@
# -*- coding: utf-8 -*-
import logging
from datetime import datetime, timezone
+from uuid import UUID
from django.db.models import Q
from django.http import Http404
@@ 40,7 41,10 @@ def impersonate(request, uid):
logger.error(f'views/impersonate: Invalid value for uid given: {uid}')
raise Http404('Invalid value given.')
if check_allow_for_user(request, new_user):
- request.session['_impersonate'] = new_user.pk
+ if isinstance(new_user.pk, UUID):
+ request.session['_impersonate'] = str(new_user.pk)
+ else:
+ request.session['_impersonate'] = new_user.pk
request.session['_impersonate_start'] = datetime.now(
tz=timezone.utc
).timestamp()