80 lines
2.3 KiB
Python
80 lines
2.3 KiB
Python
from rest_framework import permissions
|
|
from utils.get_user_workspace import *
|
|
from utils.get_cuser_role import *
|
|
from apps.shop.models import Order as OrderModel
|
|
from utils.get_cuser_role import get_cuser_role_uuid
|
|
from apps.cuser.models import CuserRole as CuserRoleModel
|
|
|
|
workspace_group = [
|
|
'workspace_owner',
|
|
]
|
|
|
|
workspace_admin_up = [
|
|
'workspace_owner',
|
|
'workspace_admin',
|
|
]
|
|
|
|
workspace_operator_up = [
|
|
'workspace_owner',
|
|
'workspace_admin',
|
|
'workspace_operator',
|
|
]
|
|
|
|
|
|
class WorkspaceOwnerPermission(permissions.BasePermission):
|
|
required_groups = workspace_group
|
|
|
|
def has_permission(self, request, view):
|
|
|
|
cuser_role_uuid = get_cuser_role_uuid(request)
|
|
cuser_role = CuserRoleModel.objects.select_related('role_type').get(uuid=cuser_role_uuid)
|
|
if cuser_role.role_type.role_name_en in self.required_groups:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|
|
class WorkspaceAdminPermission(permissions.BasePermission):
|
|
required_groups = workspace_admin_up
|
|
|
|
def has_permission(self, request, view):
|
|
|
|
cuser_role_uuid = get_cuser_role_uuid(request)
|
|
cuser_role = CuserRoleModel.objects.select_related('role_type').get(uuid=cuser_role_uuid)
|
|
if cuser_role.role_type.role_name_en in self.required_groups:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|
|
class WorkspaceOperatorPermission(permissions.BasePermission):
|
|
required_groups = workspace_operator_up
|
|
|
|
def has_permission(self, request, view):
|
|
|
|
cuser_role_uuid = get_cuser_role_uuid(request)
|
|
cuser_role = CuserRoleModel.objects.select_related('role_type').get(uuid=cuser_role_uuid)
|
|
if cuser_role.role_type.role_name_en in self.required_groups:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|
|
class WorkspaceCustomerPermission(permissions.BasePermission):
|
|
required_groups = [
|
|
'workspace_owner',
|
|
'workspace_admin',
|
|
'workspace_operator',
|
|
'workspace_customer',
|
|
]
|
|
|
|
def has_permission(self, request, view):
|
|
cuser_role_uuid = get_cuser_role_uuid(request)
|
|
cuser_role = CuserRoleModel.objects.select_related('role_type').get(uuid=cuser_role_uuid)
|
|
if cuser_role.role_type.role_name_en in self.required_groups:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|