From 65fa0fb8d73994e6a648b5e4eedbb3c4e002b797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Fri, 8 Dec 2017 17:00:13 +0100 Subject: [PATCH] cache request.user_permissions --- src/c3nav/control/middleware.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/c3nav/control/middleware.py b/src/c3nav/control/middleware.py index 25e77f1b..2a3bdb48 100644 --- a/src/c3nav/control/middleware.py +++ b/src/c3nav/control/middleware.py @@ -7,6 +7,15 @@ class UserPermissionsMiddleware: def __init__(self, get_response): self.get_response = get_response + def get_user_permissions(self, request): + try: + return getattr(request, '_user_permissions_cache') + except AttributeError: + pass + result = UserPermissions.get_for_user(request.user) + self._user_permissions_cache = result + return result + def __call__(self, request): - request.user_permissions = SimpleLazyObject(lambda: UserPermissions.get_for_user(request.user)) + request.user_permissions = SimpleLazyObject(lambda: self.get_user_permissions(request)) return self.get_response(request)