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