26 lines
1.0 KiB
Python
26 lines
1.0 KiB
Python
from rest_framework import viewsets
|
|
from rest_framework.permissions import AllowAny
|
|
from .models import Organization
|
|
from .serializers import OrganizationSerializer, OrganizationTreeSerializer
|
|
from apps.accounts.permissions import IsSuperAdmin
|
|
|
|
|
|
class OrganizationPublicViewSet(viewsets.ReadOnlyModelViewSet):
|
|
"""公开只读:门户展示用,返回顶级组织(集团)及其子公司树"""
|
|
queryset = Organization.objects.filter(is_active=True)
|
|
serializer_class = OrganizationTreeSerializer
|
|
|
|
def get_queryset(self):
|
|
# 列表只返回顶级,详情可查任意
|
|
if self.action == 'list':
|
|
return Organization.objects.filter(is_active=True, parent__isnull=True)
|
|
return Organization.objects.filter(is_active=True)
|
|
permission_classes = [AllowAny]
|
|
|
|
|
|
class OrganizationManageViewSet(viewsets.ModelViewSet):
|
|
"""超管:完整增删改查"""
|
|
queryset = Organization.objects.all()
|
|
serializer_class = OrganizationSerializer
|
|
permission_classes = [IsSuperAdmin]
|