mirror of https://github.com/jumpserver/jumpserver
				
				
				
			serializer优化&&授权导入优化
							parent
							
								
									fea0170c5e
								
							
						
					
					
						commit
						9a92e24e50
					
				| 
						 | 
					@ -35,10 +35,15 @@ class LoginACLSerializer(BulkModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = LoginACL
 | 
					        model = LoginACL
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name']
 | 
				
			||||||
            'id', 'name', 'priority', 'ip_group', 'user', 'user_display', 'action',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'action_display', 'is_active', 'comment', 'created_by', 'date_created', 'date_updated'
 | 
					            'priority', 'ip_group', 'action', 'action_display',
 | 
				
			||||||
 | 
					            'is_active',
 | 
				
			||||||
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
 | 
					            'comment', 'created_by',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['user', 'user_display',]
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            'priority': {'default': 50},
 | 
					            'priority': {'default': 50},
 | 
				
			||||||
            'is_active': {'default': True},
 | 
					            'is_active': {'default': True},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -76,11 +76,15 @@ class LoginAssetACLSerializer(BulkOrgResourceModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = models.LoginAssetACL
 | 
					        model = models.LoginAssetACL
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name']
 | 
				
			||||||
            'id', 'name', 'priority', 'users', 'system_users', 'assets', 'action', 'action_display',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'is_active', 'comment', 'reviewers', 'reviewers_amount', 'created_by', 'date_created',
 | 
					            'users', 'system_users', 'assets',
 | 
				
			||||||
            'date_updated', 'org_id'
 | 
					            'is_active',
 | 
				
			||||||
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
 | 
					            'priority', 'action', 'action_display', 'comment', 'created_by', 'org_id'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_m2m = ['reviewers', 'reviewers_amount']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_m2m
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            "reviewers": {'allow_null': False, 'required': True},
 | 
					            "reviewers": {'allow_null': False, 'required': True},
 | 
				
			||||||
            'priority': {'default': 50},
 | 
					            'priority': {'default': 50},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,10 +49,14 @@ class ApplicationSerializer(ApplicationSerializerMixin, BulkOrgResourceModelSeri
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = models.Application
 | 
					        model = models.Application
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name']
 | 
				
			||||||
            'id', 'name', 'category', 'category_display', 'type', 'type_display', 'attrs',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'domain', 'created_by', 'date_created', 'date_updated', 'comment'
 | 
					            'category', 'category_display', 'type', 'type_display', 'attrs',
 | 
				
			||||||
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
 | 
					            'created_by', 'comment'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['domain']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk
 | 
				
			||||||
        read_only_fields = [
 | 
					        read_only_fields = [
 | 
				
			||||||
            'created_by', 'date_created', 'date_updated', 'get_type_display',
 | 
					            'created_by', 'date_created', 'date_updated', 'get_type_display',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,10 +16,14 @@ class AdminUserSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = AdminUser
 | 
					        model = AdminUser
 | 
				
			||||||
        fields = [
 | 
					        fields_mini  = ['id', 'name', 'username']
 | 
				
			||||||
            'id', 'name', 'username', 'password', 'private_key', 'public_key',
 | 
					        fields_write_only = ['password', 'private_key', 'public_key']
 | 
				
			||||||
            'comment', 'assets_amount', 'date_created', 'date_updated', 'created_by',
 | 
					        fields_small = fields_mini + fields_write_only + [
 | 
				
			||||||
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
 | 
					            'comment', 'created_by'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['assets_amount']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk
 | 
				
			||||||
        read_only_fields = ['date_created', 'date_updated', 'created_by', 'assets_amount']
 | 
					        read_only_fields = ['date_created', 'date_updated', 'created_by', 'assets_amount']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,10 +22,11 @@ class AssetUserWriteSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializ
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = AuthBook
 | 
					        model = AuthBook
 | 
				
			||||||
        list_serializer_class = AdaptedBulkListSerializer
 | 
					        list_serializer_class = AdaptedBulkListSerializer
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'username']
 | 
				
			||||||
            'id', 'username', 'password', 'private_key', "public_key",
 | 
					        fields_write_only = ['password', 'private_key', "public_key"]
 | 
				
			||||||
            'asset', 'comment',
 | 
					        fields_small = fields_mini + fields_write_only + ['comment']
 | 
				
			||||||
        ]
 | 
					        fields_fk = ['asset']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            'username': {'required': True},
 | 
					            'username': {'required': True},
 | 
				
			||||||
            'password': {'write_only': True},
 | 
					            'password': {'write_only': True},
 | 
				
			||||||
| 
						 | 
					@ -52,11 +53,15 @@ class AssetUserReadSerializer(AssetUserWriteSerializer):
 | 
				
			||||||
            'date_created', 'date_updated',
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
            'created_by', 'version',
 | 
					            'created_by', 'version',
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'username']
 | 
				
			||||||
            'id', 'username', 'password', 'private_key', "public_key",
 | 
					        fields_write_only = ['password', 'private_key', "public_key"]
 | 
				
			||||||
            'asset', 'hostname', 'ip', 'backend', 'version',
 | 
					        fields_small = fields_mini + fields_write_only + [
 | 
				
			||||||
            'date_created', "date_updated", 'comment',
 | 
					            'backend', 'version',
 | 
				
			||||||
 | 
					            'date_created', "date_updated",
 | 
				
			||||||
 | 
					            'comment'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['asset', 'hostname', 'ip']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            'username': {'required': True},
 | 
					            'username': {'required': True},
 | 
				
			||||||
            'password': {'write_only': True},
 | 
					            'password': {'write_only': True},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,11 +16,16 @@ class CommandFilterSerializer(BulkOrgResourceModelSerializer):
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = CommandFilter
 | 
					        model = CommandFilter
 | 
				
			||||||
        list_serializer_class = AdaptedBulkListSerializer
 | 
					        list_serializer_class = AdaptedBulkListSerializer
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name']
 | 
				
			||||||
            'id', 'name', 'org_id', 'org_name', 'is_active', 'comment',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'created_by', 'date_created', 'date_updated', 'rules', 'system_users'
 | 
					            'org_id', 'org_name',
 | 
				
			||||||
 | 
					            'is_active',
 | 
				
			||||||
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
 | 
					            'comment', 'created_by',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['rules']
 | 
				
			||||||
 | 
					        fields_m2m = ['system_users']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk + fields_m2m
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            'rules': {'read_only': True},
 | 
					            'rules': {'read_only': True},
 | 
				
			||||||
            'system_users': {'required': False},
 | 
					            'system_users': {'required': False},
 | 
				
			||||||
| 
						 | 
					@ -38,7 +43,8 @@ class CommandFilterRuleSerializer(BulkOrgResourceModelSerializer):
 | 
				
			||||||
        fields_small = fields_mini + [
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
           'type', 'type_display', 'content', 'priority',
 | 
					           'type', 'type_display', 'content', 'priority',
 | 
				
			||||||
           'action', 'action_display', 'reviewers',
 | 
					           'action', 'action_display', 'reviewers',
 | 
				
			||||||
           'comment', 'created_by', 'date_created', 'date_updated'
 | 
					           'date_created', 'date_updated',
 | 
				
			||||||
 | 
					           'comment', 'created_by',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
        fields_fk = ['filter']
 | 
					        fields_fk = ['filter']
 | 
				
			||||||
        fields = '__all__'
 | 
					        fields = '__all__'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -48,11 +48,18 @@ class GatewaySerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer):
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = Gateway
 | 
					        model = Gateway
 | 
				
			||||||
        list_serializer_class = AdaptedBulkListSerializer
 | 
					        list_serializer_class = AdaptedBulkListSerializer
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name']
 | 
				
			||||||
            'id', 'name', 'ip', 'port', 'protocol', 'username', 'password',
 | 
					        fields_write_only = [
 | 
				
			||||||
            'private_key', 'public_key', 'domain', 'is_active', 'date_created',
 | 
					            'password', 'private_key', 'public_key',
 | 
				
			||||||
            'date_updated', 'created_by', 'comment',
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_small = fields_mini + fields_write_only + [
 | 
				
			||||||
 | 
					            'username', 'ip', 'port', 'protocol',
 | 
				
			||||||
 | 
					            'is_active',
 | 
				
			||||||
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
 | 
					            'created_by', 'comment',
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['domain']
 | 
				
			||||||
 | 
					        fields = fields_small +  fields_fk
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            'password': {'validators': [NoSpecialChars()]}
 | 
					            'password': {'validators': [NoSpecialChars()]}
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,11 +10,14 @@ from ..models import GatheredUser
 | 
				
			||||||
class GatheredUserSerializer(OrgResourceModelSerializerMixin):
 | 
					class GatheredUserSerializer(OrgResourceModelSerializerMixin):
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = GatheredUser
 | 
					        model = GatheredUser
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id']
 | 
				
			||||||
            'id', 'asset', 'hostname', 'ip', 'username',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'date_last_login', 'ip_last_login',
 | 
					            'username', 'ip_last_login',
 | 
				
			||||||
            'present', 'date_created', 'date_updated'
 | 
					            'present',
 | 
				
			||||||
 | 
					            'date_last_login', 'date_created', 'date_updated'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['asset', 'hostname', 'ip']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk
 | 
				
			||||||
        read_only_fields = fields
 | 
					        read_only_fields = fields
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            'hostname': {'label': _("Hostname")},
 | 
					            'hostname': {'label': _("Hostname")},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,10 +15,15 @@ class LabelSerializer(BulkOrgResourceModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = Label
 | 
					        model = Label
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name']
 | 
				
			||||||
            'id', 'name', 'value', 'category', 'is_active', 'comment',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'date_created', 'asset_count', 'assets', 'category_display'
 | 
					            'value', 'category', 'category_display',
 | 
				
			||||||
 | 
					            'is_active',
 | 
				
			||||||
 | 
					            'date_created',
 | 
				
			||||||
 | 
					            'comment',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_m2m = ['asset_count', 'assets']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_m2m
 | 
				
			||||||
        read_only_fields = (
 | 
					        read_only_fields = (
 | 
				
			||||||
            'category', 'date_created', 'asset_count',
 | 
					            'category', 'date_created', 'asset_count',
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,16 +26,18 @@ class SystemUserSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer):
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = SystemUser
 | 
					        model = SystemUser
 | 
				
			||||||
        list_serializer_class = AdaptedBulkListSerializer
 | 
					        list_serializer_class = AdaptedBulkListSerializer
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name', 'username']
 | 
				
			||||||
            'id', 'name', 'username', 'protocol',
 | 
					        fields_write_only = ['password', 'public_key', 'private_key']
 | 
				
			||||||
            'password', 'public_key', 'private_key',
 | 
					        fields_small = fields_mini + fields_write_only + [
 | 
				
			||||||
            'login_mode', 'login_mode_display',
 | 
					            'protocol', 'login_mode', 'login_mode_display', 'priority',
 | 
				
			||||||
            'priority', 'username_same_with_user',
 | 
					            'sudo', 'shell', 'sftp_root', 'token',
 | 
				
			||||||
            'auto_push', 'cmd_filters', 'sudo', 'shell', 'comment',
 | 
					            'home', 'system_groups', 'ad_domain',
 | 
				
			||||||
            'auto_generate_key', 'sftp_root', 'token',
 | 
					            'username_same_with_user', 'auto_push', 'auto_generate_key',
 | 
				
			||||||
            'assets_amount', 'date_created', 'date_updated', 'created_by',
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
            'home', 'system_groups', 'ad_domain'
 | 
					            'comment', 'created_by',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_m2m = [ 'cmd_filters', 'assets_amount']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_m2m
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            'password': {"write_only": True},
 | 
					            'password': {"write_only": True},
 | 
				
			||||||
            'public_key': {"write_only": True},
 | 
					            'public_key': {"write_only": True},
 | 
				
			||||||
| 
						 | 
					@ -147,17 +149,18 @@ class SystemUserSerializer(AuthSerializerMixin, BulkOrgResourceModelSerializer):
 | 
				
			||||||
class SystemUserListSerializer(SystemUserSerializer):
 | 
					class SystemUserListSerializer(SystemUserSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta(SystemUserSerializer.Meta):
 | 
					    class Meta(SystemUserSerializer.Meta):
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name', 'username']
 | 
				
			||||||
            'id', 'name', 'username', 'protocol',
 | 
					        fields_write_only = ['password', 'public_key', 'private_key']
 | 
				
			||||||
            'password', 'public_key', 'private_key',
 | 
					        fields_small = fields_mini + fields_write_only + [
 | 
				
			||||||
            'login_mode', 'login_mode_display',
 | 
					            'protocol', 'login_mode', 'login_mode_display', 'priority',
 | 
				
			||||||
            'priority', "username_same_with_user",
 | 
					            'sudo', 'shell', 'home', 'system_groups',
 | 
				
			||||||
            'auto_push', 'sudo', 'shell', 'comment',
 | 
					            'ad_domain', 'sftp_root',
 | 
				
			||||||
            "assets_amount", 'home', 'system_groups',
 | 
					            "username_same_with_user", 'auto_push', 'auto_generate_key',
 | 
				
			||||||
            'auto_generate_key', 'ad_domain',
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
            'sftp_root', 'created_by', 'date_created',
 | 
					            'comment', 'created_by',
 | 
				
			||||||
            'date_updated',
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_m2m = ["assets_amount",]
 | 
				
			||||||
 | 
					        fields = fields_small + fields_m2m
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            'password': {"write_only": True},
 | 
					            'password': {"write_only": True},
 | 
				
			||||||
            'public_key': {"write_only": True},
 | 
					            'public_key': {"write_only": True},
 | 
				
			||||||
| 
						 | 
					@ -178,15 +181,15 @@ class SystemUserListSerializer(SystemUserSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SystemUserWithAuthInfoSerializer(SystemUserSerializer):
 | 
					class SystemUserWithAuthInfoSerializer(SystemUserSerializer):
 | 
				
			||||||
    class Meta(SystemUserSerializer.Meta):
 | 
					    class Meta(SystemUserSerializer.Meta):
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name', 'username']
 | 
				
			||||||
            'id', 'name', 'username', 'protocol',
 | 
					        fields_write_only = ['password', 'public_key', 'private_key']
 | 
				
			||||||
            'password', 'public_key', 'private_key',
 | 
					        fields_small = fields_mini + fields_write_only + [
 | 
				
			||||||
            'login_mode', 'login_mode_display',
 | 
					            'protocol', 'login_mode', 'login_mode_display', 'priority',
 | 
				
			||||||
            'priority', 'username_same_with_user',
 | 
					            'sudo', 'shell', 'ad_domain', 'sftp_root', 'token',
 | 
				
			||||||
            'auto_push', 'sudo', 'shell', 'comment',
 | 
					            "username_same_with_user", 'auto_push', 'auto_generate_key',
 | 
				
			||||||
            'auto_generate_key', 'sftp_root', 'token',
 | 
					            'comment',
 | 
				
			||||||
            'ad_domain',
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields = fields_small
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            'nodes_amount': {'label': _('Node')},
 | 
					            'nodes_amount': {'label': _('Node')},
 | 
				
			||||||
            'assets_amount': {'label': _('Asset')},
 | 
					            'assets_amount': {'label': _('Asset')},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,10 +16,14 @@ class FTPLogSerializer(serializers.ModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = models.FTPLog
 | 
					        model = models.FTPLog
 | 
				
			||||||
        fields = (
 | 
					        fields_mini = ['id']
 | 
				
			||||||
            'id', 'user', 'remote_addr', 'asset', 'system_user', 'org_id',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'operate', 'filename', 'is_success', 'date_start', 'operate_display'
 | 
					            'user', 'remote_addr', 'asset', 'system_user', 'org_id',
 | 
				
			||||||
        )
 | 
					            'operate', 'filename', 'operate_display',
 | 
				
			||||||
 | 
					            'is_success',
 | 
				
			||||||
 | 
					            'date_start',
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        fields = fields_small
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class UserLoginLogSerializer(serializers.ModelSerializer):
 | 
					class UserLoginLogSerializer(serializers.ModelSerializer):
 | 
				
			||||||
| 
						 | 
					@ -29,11 +33,14 @@ class UserLoginLogSerializer(serializers.ModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = models.UserLoginLog
 | 
					        model = models.UserLoginLog
 | 
				
			||||||
        fields = (
 | 
					        fields_mini = ['id']
 | 
				
			||||||
            'id', 'username', 'type', 'type_display', 'ip', 'city', 'user_agent',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'mfa', 'reason', 'status', 'status_display', 'datetime', 'mfa_display',
 | 
					            'username', 'type', 'type_display', 'ip', 'city', 'user_agent',
 | 
				
			||||||
            'backend'
 | 
					            'mfa', 'mfa_display', 'reason', 'backend',
 | 
				
			||||||
        )
 | 
					            'status', 'status_display',
 | 
				
			||||||
 | 
					            'datetime',
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        fields = fields_small
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            "user_agent": {'label': _('User agent')}
 | 
					            "user_agent": {'label': _('User agent')}
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -42,10 +49,13 @@ class UserLoginLogSerializer(serializers.ModelSerializer):
 | 
				
			||||||
class OperateLogSerializer(serializers.ModelSerializer):
 | 
					class OperateLogSerializer(serializers.ModelSerializer):
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = models.OperateLog
 | 
					        model = models.OperateLog
 | 
				
			||||||
        fields = (
 | 
					        fields_mini = ['id']
 | 
				
			||||||
            'id', 'user', 'action', 'resource_type', 'resource',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'remote_addr', 'datetime', 'org_id'
 | 
					            'user', 'action', 'resource_type', 'resource', 'remote_addr',
 | 
				
			||||||
        )
 | 
					            'datetime',
 | 
				
			||||||
 | 
					            'org_id'
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        fields = fields_small
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class PasswordChangeLogSerializer(serializers.ModelSerializer):
 | 
					class PasswordChangeLogSerializer(serializers.ModelSerializer):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,11 +14,15 @@ class AdHocExecutionSerializer(serializers.ModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = AdHocExecution
 | 
					        model = AdHocExecution
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id']
 | 
				
			||||||
            'id', 'task', 'task_display', 'hosts_amount', 'adhoc', 'date_start', 'stat',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'date_finished', 'timedelta', 'is_finished', 'is_success', 'result', 'summary',
 | 
					            'hosts_amount', 'timedelta', 'result', 'summary', 'short_id',
 | 
				
			||||||
            'short_id', 'adhoc_short_id', 'last_success', 'last_failure'
 | 
					            'is_finished', 'is_success',
 | 
				
			||||||
 | 
					            'date_start', 'date_finished',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['task', 'task_display', 'adhoc', 'adhoc_short_id',]
 | 
				
			||||||
 | 
					        fields_custom = ['stat', 'last_success', 'last_failure']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk + fields_custom
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
    def get_task(obj):
 | 
					    def get_task(obj):
 | 
				
			||||||
| 
						 | 
					@ -52,11 +56,16 @@ class TaskSerializer(BulkOrgResourceModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = Task
 | 
					        model = Task
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name']
 | 
				
			||||||
            'id', 'name', 'interval', 'crontab', 'is_periodic',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'is_deleted', 'comment', 'date_created',
 | 
					            'interval', 'crontab',
 | 
				
			||||||
            'date_updated', 'latest_execution', 'summary',
 | 
					            'is_periodic', 'is_deleted',
 | 
				
			||||||
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
 | 
					            'comment',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['latest_execution']
 | 
				
			||||||
 | 
					        fields_custom = ['summary']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk + fields_custom
 | 
				
			||||||
        read_only_fields = [
 | 
					        read_only_fields = [
 | 
				
			||||||
            'is_deleted', 'date_created', 'date_updated',
 | 
					            'is_deleted', 'date_created', 'date_updated',
 | 
				
			||||||
            'latest_adhoc', 'latest_execution', 'total_run_amount',
 | 
					            'latest_adhoc', 'latest_execution', 'total_run_amount',
 | 
				
			||||||
| 
						 | 
					@ -77,12 +86,16 @@ class AdHocSerializer(serializers.ModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = AdHoc
 | 
					        model = AdHoc
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id']
 | 
				
			||||||
            "id", "task", 'tasks', "pattern", "options",
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            "hosts", "run_as_admin", "run_as", "become",
 | 
					            'tasks', "pattern", "options", "run_as",
 | 
				
			||||||
            "date_created", "short_id",
 | 
					            "become", "become_display", "short_id",
 | 
				
			||||||
            "become_display",
 | 
					            "run_as_admin",
 | 
				
			||||||
 | 
					            "date_created",
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ["task"]
 | 
				
			||||||
 | 
					        fields_m2m = ["hosts"]
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk + fields_m2m
 | 
				
			||||||
        read_only_fields = [
 | 
					        read_only_fields = [
 | 
				
			||||||
            'date_created'
 | 
					            'date_created'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
| 
						 | 
					@ -99,8 +112,8 @@ class AdHocExecutionNestSerializer(serializers.ModelSerializer):
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = AdHocExecution
 | 
					        model = AdHocExecution
 | 
				
			||||||
        fields = (
 | 
					        fields = (
 | 
				
			||||||
            'last_success', 'last_failure', 'last_run', 'timedelta', 'is_finished',
 | 
					            'last_success', 'last_failure', 'last_run', 'timedelta',
 | 
				
			||||||
            'is_success'
 | 
					            'is_finished', 'is_success'
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -120,10 +133,15 @@ class CommandExecutionSerializer(serializers.ModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = CommandExecution
 | 
					        model = CommandExecution
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id']
 | 
				
			||||||
            'id', 'hosts', 'run_as', 'command', 'result', 'log_url',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'is_finished', 'date_created', 'date_finished'
 | 
					            'command', 'result', 'log_url',
 | 
				
			||||||
 | 
					            'is_finished',
 | 
				
			||||||
 | 
					            'date_created', 'date_finished'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['run_as']
 | 
				
			||||||
 | 
					        fields_m2m = ['hosts']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk + fields_m2m
 | 
				
			||||||
        read_only_fields = [
 | 
					        read_only_fields = [
 | 
				
			||||||
            'result', 'is_finished', 'log_url', 'date_created',
 | 
					            'result', 'is_finished', 'log_url', 'date_created',
 | 
				
			||||||
            'date_finished'
 | 
					            'date_finished'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,8 +38,10 @@ class OrgSerializer(ModelSerializer):
 | 
				
			||||||
        list_serializer_class = AdaptedBulkListSerializer
 | 
					        list_serializer_class = AdaptedBulkListSerializer
 | 
				
			||||||
        fields_mini = ['id', 'name']
 | 
					        fields_mini = ['id', 'name']
 | 
				
			||||||
        fields_small = fields_mini + [
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'is_default', 'is_root', 'comment',
 | 
					            'resource_statistics',
 | 
				
			||||||
            'created_by', 'date_created', 'resource_statistics'
 | 
					            'is_default', 'is_root',
 | 
				
			||||||
 | 
					            'date_created',
 | 
				
			||||||
 | 
					            'comment', 'created_by',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        fields_m2m = ['users', 'admins', 'auditors']
 | 
					        fields_m2m = ['users', 'admins', 'auditors']
 | 
				
			||||||
| 
						 | 
					@ -79,7 +81,12 @@ class OrgMemberSerializer(BulkModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = OrganizationMember
 | 
					        model = OrganizationMember
 | 
				
			||||||
        fields = ('id', 'org', 'user', 'role', 'org_display', 'user_display', 'role_display')
 | 
					        fields_mini = ['id']
 | 
				
			||||||
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
 | 
					            'role', 'role_display'
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['org', 'user', 'org_display', 'user_display',]
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk
 | 
				
			||||||
        use_model_bulk_create = True
 | 
					        use_model_bulk_create = True
 | 
				
			||||||
        model_bulk_create_kwargs = {'ignore_conflicts': True}
 | 
					        model_bulk_create_kwargs = {'ignore_conflicts': True}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -20,16 +20,16 @@ class ApplicationPermissionSerializer(BulkOrgResourceModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = ApplicationPermission
 | 
					        model = ApplicationPermission
 | 
				
			||||||
        mini_fields = ['id', 'name']
 | 
					        fields_mini = ['id', 'name']
 | 
				
			||||||
        small_fields = mini_fields + [
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'category', 'category_display', 'type', 'type_display', 'is_active', 'is_expired',
 | 
					            'category', 'category_display', 'type', 'type_display', 'is_active', 'is_expired',
 | 
				
			||||||
            'is_valid', 'created_by', 'date_created', 'date_expired', 'date_start', 'comment'
 | 
					            'is_valid', 'created_by', 'date_created', 'date_expired', 'date_start', 'comment'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
        m2m_fields = [
 | 
					        fields_m2m = [
 | 
				
			||||||
            'users', 'user_groups', 'applications', 'system_users',
 | 
					            'users', 'user_groups', 'applications', 'system_users',
 | 
				
			||||||
            'users_amount', 'user_groups_amount', 'applications_amount', 'system_users_amount',
 | 
					            'users_amount', 'user_groups_amount', 'applications_amount', 'system_users_amount',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
        fields = small_fields + m2m_fields
 | 
					        fields = fields_small + fields_m2m
 | 
				
			||||||
        read_only_fields = ['created_by', 'date_created']
 | 
					        read_only_fields = ['created_by', 'date_created']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,8 +3,10 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from rest_framework import serializers
 | 
					from rest_framework import serializers
 | 
				
			||||||
from django.utils.translation import ugettext_lazy as _
 | 
					from django.utils.translation import ugettext_lazy as _
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django.db.models import Prefetch, Q
 | 
					from django.db.models import Prefetch, Q
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
 | 
					from orgs.mixins.serializers import BulkOrgResourceModelSerializer
 | 
				
			||||||
from perms.models import AssetPermission, Action
 | 
					from perms.models import AssetPermission, Action
 | 
				
			||||||
from assets.models import Asset, Node, SystemUser
 | 
					from assets.models import Asset, Node, SystemUser
 | 
				
			||||||
| 
						 | 
					@ -95,18 +97,18 @@ class AssetPermissionSerializer(BulkOrgResourceModelSerializer):
 | 
				
			||||||
        users_to_set = User.objects.filter(
 | 
					        users_to_set = User.objects.filter(
 | 
				
			||||||
            Q(name__in=kwargs.get('users_display')) | Q(username__in=kwargs.get('users_display'))
 | 
					            Q(name__in=kwargs.get('users_display')) | Q(username__in=kwargs.get('users_display'))
 | 
				
			||||||
        ).distinct()
 | 
					        ).distinct()
 | 
				
			||||||
        instance.users.set(users_to_set)
 | 
					        instance.users.add(users_to_set)
 | 
				
			||||||
        # 用户组
 | 
					        # 用户组
 | 
				
			||||||
        user_groups_to_set = UserGroup.objects.filter(name__in=kwargs.get('user_groups_display')).distinct()
 | 
					        user_groups_to_set = UserGroup.objects.filter(name__in=kwargs.get('user_groups_display')).distinct()
 | 
				
			||||||
        instance.user_groups.set(user_groups_to_set)
 | 
					        instance.user_groups.add(user_groups_to_set)
 | 
				
			||||||
        # 资产
 | 
					        # 资产
 | 
				
			||||||
        assets_to_set = Asset.objects.filter(
 | 
					        assets_to_set = Asset.objects.filter(
 | 
				
			||||||
            Q(ip__in=kwargs.get('assets_display')) | Q(hostname__in=kwargs.get('assets_display'))
 | 
					            Q(ip__in=kwargs.get('assets_display')) | Q(hostname__in=kwargs.get('assets_display'))
 | 
				
			||||||
        ).distinct()
 | 
					        ).distinct()
 | 
				
			||||||
        instance.assets.set(assets_to_set)
 | 
					        instance.assets.add(assets_to_set)
 | 
				
			||||||
        # 节点
 | 
					        # 节点
 | 
				
			||||||
        nodes_to_set = Node.objects.filter(full_value__in=kwargs.get('nodes_display')).distinct()
 | 
					        nodes_to_set = Node.objects.filter(full_value__in=kwargs.get('nodes_display')).distinct()
 | 
				
			||||||
        instance.nodes.set(nodes_to_set)
 | 
					        instance.nodes.add(nodes_to_set)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def create(self, validated_data):
 | 
					    def create(self, validated_data):
 | 
				
			||||||
        display = {
 | 
					        display = {
 | 
				
			||||||
| 
						 | 
					@ -118,3 +120,4 @@ class AssetPermissionSerializer(BulkOrgResourceModelSerializer):
 | 
				
			||||||
        instance = super().create(validated_data)
 | 
					        instance = super().create(validated_data)
 | 
				
			||||||
        self.perform_display_create(instance, **display)
 | 
					        self.perform_display_create(instance, **display)
 | 
				
			||||||
        return instance
 | 
					        return instance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,14 +17,17 @@ class SessionSerializer(BulkOrgResourceModelSerializer):
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = Session
 | 
					        model = Session
 | 
				
			||||||
        list_serializer_class = AdaptedBulkListSerializer
 | 
					        list_serializer_class = AdaptedBulkListSerializer
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ["id"]
 | 
				
			||||||
            "id", "user", "asset", "system_user",
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
 | 
					            "user", "asset", "system_user",
 | 
				
			||||||
            "user_id", "asset_id", "system_user_id",
 | 
					            "user_id", "asset_id", "system_user_id",
 | 
				
			||||||
            "login_from", "login_from_display", "remote_addr",
 | 
					            "login_from", "login_from_display", "remote_addr", "protocol",
 | 
				
			||||||
            "is_success",  "is_finished", "has_replay", "can_replay",
 | 
					            "is_success", "is_finished", "has_replay",
 | 
				
			||||||
            "can_join", "can_terminate", "protocol", "date_start", "date_end",
 | 
					            "date_start", "date_end",
 | 
				
			||||||
            "terminal",
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ["terminal",]
 | 
				
			||||||
 | 
					        fields_custom = ["can_replay", "can_join", "can_terminate",]
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk + fields_custom
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            "protocol": {'label': _('Protocol')},
 | 
					            "protocol": {'label': _('Protocol')},
 | 
				
			||||||
            'user_id': {'label': _('User ID')},
 | 
					            'user_id': {'label': _('User ID')},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,12 +17,15 @@ class StatusSerializer(serializers.ModelSerializer):
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id']
 | 
				
			||||||
            'id',
 | 
					        fields_write_only = ['sessions',]
 | 
				
			||||||
 | 
					        fields_small = fields_mini + fields_write_only + [
 | 
				
			||||||
            'cpu_load', 'memory_used', 'disk_used',
 | 
					            'cpu_load', 'memory_used', 'disk_used',
 | 
				
			||||||
            'session_online', 'sessions',
 | 
					            'session_online',
 | 
				
			||||||
            'terminal', 'date_created',
 | 
					            'date_created'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['terminal']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk
 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            "cpu_load": {'default': 0},
 | 
					            "cpu_load": {'default': 0},
 | 
				
			||||||
            "memory_used": {'default': 0},
 | 
					            "memory_used": {'default': 0},
 | 
				
			||||||
| 
						 | 
					@ -40,12 +43,16 @@ class TerminalSerializer(BulkModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = Terminal
 | 
					        model = Terminal
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'name']
 | 
				
			||||||
            'id', 'name', 'type', 'remote_addr', 'http_port', 'ssh_port',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'comment', 'is_accepted', "is_active", 'session_online',
 | 
					            'type', 'remote_addr', 'http_port', 'ssh_port',
 | 
				
			||||||
            'is_alive', 'date_created', 'command_storage', 'replay_storage',
 | 
					            'session_online', 'command_storage', 'replay_storage',
 | 
				
			||||||
            'status', 'status_display', 'stat'
 | 
					            'is_accepted', "is_active", 'is_alive',
 | 
				
			||||||
 | 
					            'date_created',
 | 
				
			||||||
 | 
					            'comment',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['status', 'status_display', 'stat']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk
 | 
				
			||||||
        read_only_fields = ['type', 'date_created']
 | 
					        read_only_fields = ['type', 'date_created']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,9 +21,13 @@ class CommentSerializer(serializers.ModelSerializer):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = Comment
 | 
					        model = Comment
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id']
 | 
				
			||||||
            'id', 'ticket', 'body', 'user', 'user_display', 'date_created', 'date_updated'
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
 | 
					            'body',  'user_display',
 | 
				
			||||||
 | 
					            'date_created', 'date_updated'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['ticket', 'user',]
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk
 | 
				
			||||||
        read_only_fields = [
 | 
					        read_only_fields = [
 | 
				
			||||||
            'user_display', 'date_created', 'date_updated'
 | 
					            'user_display', 'date_created', 'date_updated'
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,15 +27,17 @@ class TicketSerializer(OrgResourceModelSerializerMixin):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        model = Ticket
 | 
					        model = Ticket
 | 
				
			||||||
        fields = [
 | 
					        fields_mini = ['id', 'title']
 | 
				
			||||||
            'id', 'title', 'type', 'type_display',
 | 
					        fields_small = fields_mini + [
 | 
				
			||||||
            'meta', 'action', 'action_display', 'status', 'status_display',
 | 
					            'type', 'type_display', 'meta', 'body',
 | 
				
			||||||
            'applicant', 'applicant_display', 'processor', 'processor_display',
 | 
					            'action', 'action_display', 'status', 'status_display',
 | 
				
			||||||
            'assignees', 'assignees_display', 'comment',
 | 
					            'applicant_display', 'processor_display', 'assignees_display',
 | 
				
			||||||
            'date_created', 'date_updated',
 | 
					            'date_created', 'date_updated',
 | 
				
			||||||
            'org_id', 'org_name',
 | 
					            'comment', 'org_id', 'org_name',
 | 
				
			||||||
            'body'
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        fields_fk = ['applicant', 'processor',]
 | 
				
			||||||
 | 
					        fields_m2m = ['assignees']
 | 
				
			||||||
 | 
					        fields = fields_small + fields_fk + fields_m2m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_meta_serializer(self):
 | 
					    def get_meta_serializer(self):
 | 
				
			||||||
        default_serializer = serializers.Serializer(read_only=True)
 | 
					        default_serializer = serializers.Serializer(read_only=True)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,24 +44,35 @@ class UserSerializer(CommonBulkSerializerMixin, serializers.ModelSerializer):
 | 
				
			||||||
        model = User
 | 
					        model = User
 | 
				
			||||||
        # mini 是指能识别对象的最小单元
 | 
					        # mini 是指能识别对象的最小单元
 | 
				
			||||||
        fields_mini = ['id', 'name', 'username']
 | 
					        fields_mini = ['id', 'name', 'username']
 | 
				
			||||||
 | 
					        # 只能写的字段, 这个虽然无法在框架上生效,但是更多对我们是提醒
 | 
				
			||||||
 | 
					        fields_write_only = [
 | 
				
			||||||
 | 
					            'password', 'public_key',
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
        # small 指的是 不需要计算的直接能从一张表中获取到的数据
 | 
					        # small 指的是 不需要计算的直接能从一张表中获取到的数据
 | 
				
			||||||
        fields_small = fields_mini + [
 | 
					        fields_small = fields_mini + fields_write_only + [
 | 
				
			||||||
            'password', 'email', 'public_key', 'wechat', 'phone', 'mfa_level', 'mfa_enabled',
 | 
					            'email', 'wechat', 'phone', 'mfa_level',
 | 
				
			||||||
            'mfa_level_display', 'mfa_force_enabled', 'role_display', 'org_role_display',
 | 
					            'source', 'source_display',
 | 
				
			||||||
            'total_role_display', 'comment', 'source', 'is_valid', 'is_expired',
 | 
					            'mfa_enabled', 'is_valid', 'is_expired', 'is_active',  # 布尔字段
 | 
				
			||||||
            'is_active', 'created_by', 'is_first_login', 'can_public_key_auth',
 | 
					            'date_expired', 'date_joined', 'last_login',  # 日期字段
 | 
				
			||||||
            'password_strategy', 'date_password_last_updated', 'date_expired',
 | 
					            'created_by', 'comment',  # 通用字段
 | 
				
			||||||
            'avatar_url', 'source_display', 'date_joined', 'last_login', 'need_update_password'
 | 
					 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
        fields = fields_small + [
 | 
					        # 包含不太常用的字段,可以没有
 | 
				
			||||||
            'groups', 'role', 'groups_display', 'role_display',
 | 
					        fields_verbose = fields_small + [
 | 
				
			||||||
            'can_update', 'can_delete', 'login_blocked', 'org_roles'
 | 
					            'total_role_display', 'org_role_display',
 | 
				
			||||||
 | 
					            'mfa_level_display', 'mfa_force_enabled', 'is_first_login',
 | 
				
			||||||
 | 
					            'date_password_last_updated', 'avatar_url',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					        # 外键的字段
 | 
				
			||||||
 | 
					        fields_fk = ['role', 'role_display']
 | 
				
			||||||
 | 
					        # 多对多字段
 | 
				
			||||||
 | 
					        fields_m2m = ['groups', 'groups_display', 'org_roles']
 | 
				
			||||||
 | 
					        # 在serializer 上定义的字段
 | 
				
			||||||
 | 
					        fields_custom = ['can_update', 'can_delete', 'login_blocked', 'password_strategy']
 | 
				
			||||||
 | 
					        fields = fields_verbose + fields_fk + fields_m2m + fields_custom
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        read_only_fields = [
 | 
					        read_only_fields = [
 | 
				
			||||||
            'date_joined', 'last_login', 'created_by', 'is_first_login',
 | 
					            'date_joined', 'last_login', 'created_by', 'is_first_login',
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					 | 
				
			||||||
        extra_kwargs = {
 | 
					        extra_kwargs = {
 | 
				
			||||||
            'password': {'write_only': True, 'required': False, 'allow_null': True, 'allow_blank': True},
 | 
					            'password': {'write_only': True, 'required': False, 'allow_null': True, 'allow_blank': True},
 | 
				
			||||||
            'public_key': {'write_only': True},
 | 
					            'public_key': {'write_only': True},
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue