asgi fix maybe
This commit is contained in:
parent
f1876903c3
commit
ac151e5eed
1 changed files with 3 additions and 2 deletions
|
@ -2,8 +2,6 @@ from channels.db import database_sync_to_async
|
||||||
from channels.middleware import BaseMiddleware as BaseChannelsMiddleware
|
from channels.middleware import BaseMiddleware as BaseChannelsMiddleware
|
||||||
from django.utils.functional import LazyObject, SimpleLazyObject, lazy
|
from django.utils.functional import LazyObject, SimpleLazyObject, lazy
|
||||||
|
|
||||||
from c3nav.control.models import UserPermissions, UserSpaceAccess
|
|
||||||
|
|
||||||
|
|
||||||
class UserPermissionsLazyObject(LazyObject):
|
class UserPermissionsLazyObject(LazyObject):
|
||||||
def _setup(self):
|
def _setup(self):
|
||||||
|
@ -23,6 +21,7 @@ class UserPermissionsMiddleware:
|
||||||
return getattr(request, '_user_permissions_cache')
|
return getattr(request, '_user_permissions_cache')
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
pass
|
pass
|
||||||
|
from c3nav.control.models import UserPermissions
|
||||||
result = UserPermissions.get_for_user(request.user)
|
result = UserPermissions.get_for_user(request.user)
|
||||||
request._user_permissions_cache = result
|
request._user_permissions_cache = result
|
||||||
return result
|
return result
|
||||||
|
@ -33,6 +32,7 @@ class UserPermissionsMiddleware:
|
||||||
return getattr(request, '_user_space_accesses_cache')
|
return getattr(request, '_user_space_accesses_cache')
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
pass
|
pass
|
||||||
|
from c3nav.control.models import UserSpaceAccess
|
||||||
result = UserSpaceAccess.get_for_user(request.user)
|
result = UserSpaceAccess.get_for_user(request.user)
|
||||||
request._user_space_accesses_cache = result
|
request._user_space_accesses_cache = result
|
||||||
return result
|
return result
|
||||||
|
@ -46,6 +46,7 @@ class UserPermissionsMiddleware:
|
||||||
class UserPermissionsChannelMiddleware(BaseChannelsMiddleware):
|
class UserPermissionsChannelMiddleware(BaseChannelsMiddleware):
|
||||||
async def __call__(self, scope, receive, send):
|
async def __call__(self, scope, receive, send):
|
||||||
# todo: this doesn't seem to actually be lazy. and scope["user"] isn't either?
|
# todo: this doesn't seem to actually be lazy. and scope["user"] isn't either?
|
||||||
|
from c3nav.control.models import UserPermissions
|
||||||
scope["user_permissions"] = UserPermissionsLazyObject()
|
scope["user_permissions"] = UserPermissionsLazyObject()
|
||||||
scope["user_permissions"]._wrapped = await database_sync_to_async(UserPermissions.get_for_user)(scope["user"])
|
scope["user_permissions"]._wrapped = await database_sync_to_async(UserPermissions.get_for_user)(scope["user"])
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue