first
This commit is contained in:
commit
89a5d70512
284 files changed
+8364
No files matched your search
@@ -0,0 +1,79 @@
|
||||
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
|
||||
|
||||
|
||||
Reference in new issue
Block a user