mirror of https://github.com/jumpserver/jumpserver
29 lines
752 B
Python
29 lines
752 B
Python
from http.cookies import SimpleCookie
|
|
|
|
from asgiref.sync import sync_to_async
|
|
|
|
from orgs.utils import tmp_to_org
|
|
|
|
|
|
class OrgMixin:
|
|
cookie = None
|
|
org = None
|
|
|
|
def get_cookie(self):
|
|
try:
|
|
headers = self.scope['headers']
|
|
headers_dict = {key.decode('utf-8'): value.decode('utf-8') for key, value in headers}
|
|
cookie = SimpleCookie(headers_dict.get('cookie', ''))
|
|
except Exception as e:
|
|
cookie = SimpleCookie()
|
|
return cookie
|
|
|
|
def get_current_org(self):
|
|
oid = self.cookie.get('X-JMS-ORG')
|
|
return oid.value if oid else None
|
|
|
|
@sync_to_async
|
|
def has_perms(self, user, perms):
|
|
with tmp_to_org(self.org):
|
|
return user.has_perms(perms)
|