cache request.user_permissions
This commit is contained in:
parent
064a235a64
commit
65fa0fb8d7
1 changed files with 10 additions and 1 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue