提交 492b1c43 编写于 作者: X xinwen

[Update] org retrieve api

上级 0babada4
...@@ -10,7 +10,7 @@ from common.permissions import IsSuperUserOrAppUser ...@@ -10,7 +10,7 @@ from common.permissions import IsSuperUserOrAppUser
from .models import Organization from .models import Organization
from .serializers import OrgSerializer, OrgReadSerializer, \ from .serializers import OrgSerializer, OrgReadSerializer, \
OrgMembershipUserSerializer, OrgMembershipAdminSerializer, \ OrgMembershipUserSerializer, OrgMembershipAdminSerializer, \
OrgAllUserSerializer OrgAllUserSerializer, OrgRetrieveSerializer
from users.models import User, UserGroup from users.models import User, UserGroup
from assets.models import Asset, Domain, AdminUser, SystemUser, Label from assets.models import Asset, Domain, AdminUser, SystemUser, Label
from perms.models import AssetPermission from perms.models import AssetPermission
...@@ -28,10 +28,11 @@ class OrgViewSet(BulkModelViewSet): ...@@ -28,10 +28,11 @@ class OrgViewSet(BulkModelViewSet):
org = None org = None
def get_serializer_class(self): def get_serializer_class(self):
if self.action in ('list', 'retrieve'): mapper = {
return OrgReadSerializer 'list': OrgReadSerializer,
else: 'retrieve': OrgRetrieveSerializer
return super().get_serializer_class() }
return mapper.get(self.action, super().get_serializer_class())
def get_data_from_model(self, model): def get_data_from_model(self, model):
if model == User: if model == User:
......
import re
from rest_framework.serializers import ModelSerializer from rest_framework.serializers import ModelSerializer
from rest_framework import serializers from rest_framework import serializers
from users.models import User, UserGroup from users.models import UserGroup
from assets.models import Asset, Domain, AdminUser, SystemUser, Label from assets.models import Asset, Domain, AdminUser, SystemUser, Label
from perms.models import AssetPermission from perms.models import AssetPermission
from common.serializers import AdaptedBulkListSerializer from common.serializers import AdaptedBulkListSerializer
from users.serializers import UserOrgSerializer
from .utils import set_current_org, get_current_org from .utils import set_current_org, get_current_org
from .models import Organization from .models import Organization
from .mixins.serializers import OrgMembershipSerializerMixin from .mixins.serializers import OrgMembershipSerializerMixin
...@@ -21,9 +19,9 @@ class OrgSerializer(ModelSerializer): ...@@ -21,9 +19,9 @@ class OrgSerializer(ModelSerializer):
class OrgReadSerializer(ModelSerializer): class OrgReadSerializer(ModelSerializer):
admins = UserOrgSerializer(many=True, read_only=True) admins = serializers.SlugRelatedField(slug_field='name', many=True, read_only=True)
auditors = UserOrgSerializer(many=True, read_only=True) auditors = serializers.SlugRelatedField(slug_field='name', many=True, read_only=True)
users = UserOrgSerializer(many=True, read_only=True) users = serializers.SlugRelatedField(slug_field='name', many=True, read_only=True)
user_groups = serializers.SerializerMethodField() user_groups = serializers.SerializerMethodField()
assets = serializers.SerializerMethodField() assets = serializers.SerializerMethodField()
domains = serializers.SerializerMethodField() domains = serializers.SerializerMethodField()
...@@ -93,3 +91,12 @@ class OrgAllUserSerializer(serializers.Serializer): ...@@ -93,3 +91,12 @@ class OrgAllUserSerializer(serializers.Serializer):
@staticmethod @staticmethod
def get_user_display(obj): def get_user_display(obj):
return str(obj) return str(obj)
class OrgRetrieveSerializer(OrgReadSerializer):
admins = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
auditors = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
users = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class Meta(OrgReadSerializer.Meta):
pass
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册