forked from erp-dev/erp
feat: running on docker fully, and added rabbitmq/worker container
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.exceptions import PermissionDenied
|
||||
from rest_framework.pagination import LimitOffsetPagination
|
||||
from rest_framework.permissions import IsAuthenticated, DjangoModelPermissions
|
||||
from django.contrib.auth.models import Permission
|
||||
from . import serializers
|
||||
|
||||
|
||||
@@ -68,17 +70,28 @@ class EmployeeTypeViewSet(BaseViewSet):
|
||||
class CustomerViewSet(BaseViewSet):
|
||||
queryset = serializers.basic_models.Customer.objects
|
||||
serializer_class = serializers.CustomerSerializer
|
||||
permission_classes = [IsAuthenticated, DjangoModelPermissions]
|
||||
|
||||
def perform_create(self, serializer):
|
||||
merchant = self.request.user.employee.merchant
|
||||
employee = self.request.user.employee
|
||||
serializer.save(merchant=merchant, created_by=employee)
|
||||
|
||||
def can_view_all(self) -> bool:
|
||||
return self.request.user.is_superuser or self.request.user.has_perm('basic_info.view_all_customers')
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super().get_queryset()
|
||||
# 应用可见性过滤
|
||||
from basic_info.services import CustomerVisibilityService
|
||||
if self.can_view_all():
|
||||
return qs.filter(merchant=self.request.user.employee.merchant)
|
||||
return CustomerVisibilityService.filter_customers_for_employee(qs, self.request.user)
|
||||
|
||||
def has_permission(self, request, view):
|
||||
if request.user.is_superuser or request.user.has_perm('basic_info.view_all_customer'):
|
||||
return True
|
||||
return super().has_permission(request, view)
|
||||
|
||||
|
||||
class VehicleTypeViewSet(BaseViewSet):
|
||||
|
||||
Reference in New Issue
Block a user