mirror of https://github.com/jumpserver/jumpserver
				
				
				
			perf: 修改数据库添加 ssl 字段
							parent
							
								
									47c405dee5
								
							
						
					
					
						commit
						0f1e19ba41
					
				| 
						 | 
				
			
			@ -1,10 +1,10 @@
 | 
			
		|||
from typing import List
 | 
			
		||||
 | 
			
		||||
from rest_framework.request import Request
 | 
			
		||||
 | 
			
		||||
from common.utils import lazyproperty, timeit
 | 
			
		||||
from assets.models import Node, Asset
 | 
			
		||||
from assets.pagination import NodeAssetTreePagination
 | 
			
		||||
from assets.models import Node
 | 
			
		||||
from assets.utils import get_node_from_request, is_query_node_all_assets
 | 
			
		||||
from common.utils import lazyproperty, timeit
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SerializeToTreeNodeMixin:
 | 
			
		||||
| 
						 | 
				
			
			@ -38,14 +38,6 @@ class SerializeToTreeNodeMixin:
 | 
			
		|||
        ]
 | 
			
		||||
        return data
 | 
			
		||||
 | 
			
		||||
    def get_platform(self, asset: Asset):
 | 
			
		||||
        default = 'file'
 | 
			
		||||
        icon = {'windows', 'linux'}
 | 
			
		||||
        platform = asset.platform.type.lower()
 | 
			
		||||
        if platform in icon:
 | 
			
		||||
            return platform
 | 
			
		||||
        return default
 | 
			
		||||
 | 
			
		||||
    @timeit
 | 
			
		||||
    def serialize_assets(self, assets, node_key=None):
 | 
			
		||||
        if node_key is None:
 | 
			
		||||
| 
						 | 
				
			
			@ -61,13 +53,11 @@ class SerializeToTreeNodeMixin:
 | 
			
		|||
                'pId': get_pid(asset),
 | 
			
		||||
                'isParent': False,
 | 
			
		||||
                'open': False,
 | 
			
		||||
                'iconSkin': self.get_platform(asset),
 | 
			
		||||
                'iconSkin': asset.type,
 | 
			
		||||
                'chkDisabled': not asset.is_active,
 | 
			
		||||
                'meta': {
 | 
			
		||||
                    'type': 'asset',
 | 
			
		||||
                    'data': {
 | 
			
		||||
                        'id': asset.id,
 | 
			
		||||
                        'name': asset.name,
 | 
			
		||||
                        'org_name': asset.org_name
 | 
			
		||||
                    },
 | 
			
		||||
                }
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +68,6 @@ class SerializeToTreeNodeMixin:
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
class NodeFilterMixin:
 | 
			
		||||
    # pagination_class = NodeAssetTreePagination
 | 
			
		||||
    request: Request
 | 
			
		||||
 | 
			
		||||
    @lazyproperty
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
# Generated by Django 3.2.14 on 2022-11-30 03:18
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('assets', '0114_node_domain'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name='database',
 | 
			
		||||
            name='allow_invalid_cert',
 | 
			
		||||
            field=models.BooleanField(default=False, verbose_name='Allow invalid cert'),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name='database',
 | 
			
		||||
            name='ca_cert',
 | 
			
		||||
            field=models.TextField(blank=True, verbose_name='CA cert'),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name='database',
 | 
			
		||||
            name='client_cert',
 | 
			
		||||
            field=models.TextField(blank=True, verbose_name='Client cert'),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name='database',
 | 
			
		||||
            name='client_key',
 | 
			
		||||
            field=models.TextField(blank=True, verbose_name='Client key'),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name='database',
 | 
			
		||||
            name='use_ssl',
 | 
			
		||||
            field=models.BooleanField(default=False, verbose_name='Use SSL'),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			@ -6,6 +6,11 @@ from .common import Asset
 | 
			
		|||
 | 
			
		||||
class Database(Asset):
 | 
			
		||||
    db_name = models.CharField(max_length=1024, verbose_name=_("Database"), blank=True)
 | 
			
		||||
    use_ssl = models.BooleanField(default=False, verbose_name=_("Use SSL"))
 | 
			
		||||
    ca_cert = models.TextField(verbose_name=_("CA cert"), blank=True)
 | 
			
		||||
    client_cert = models.TextField(verbose_name=_("Client cert"), blank=True)
 | 
			
		||||
    client_key = models.TextField(verbose_name=_("Client key"), blank=True)
 | 
			
		||||
    allow_invalid_cert = models.BooleanField(default=False, verbose_name=_('Allow invalid cert'))
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        return '{}({}://{}/{})'.format(self.name, self.type, self.address, self.db_name)
 | 
			
		||||
| 
						 | 
				
			
			@ -18,6 +23,11 @@ class Database(Asset):
 | 
			
		|||
    def specific(self):
 | 
			
		||||
        return {
 | 
			
		||||
            'db_name': self.db_name,
 | 
			
		||||
            'use_ssl': self.use_ssl,
 | 
			
		||||
            'ca_cert': self.ca_cert,
 | 
			
		||||
            'client_cert': self.client_cert,
 | 
			
		||||
            'client_key': self.client_key,
 | 
			
		||||
            'allow_invalid_cert': self.allow_invalid_cert,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    class Meta:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue