mirror of https://github.com/jumpserver/jumpserver
				
				
				
			feat:新增对sqlserver数据库托管
							parent
							
								
									2c70e117c6
								
							
						
					
					
						commit
						cb98b4f80a
					
				| 
						 | 
				
			
			@ -20,6 +20,7 @@ class AppType(TextChoices):
 | 
			
		|||
    oracle = 'oracle', 'Oracle'
 | 
			
		||||
    pgsql = 'postgresql', 'PostgreSQL'
 | 
			
		||||
    mariadb = 'mariadb', 'MariaDB'
 | 
			
		||||
    sqlserver = 'sqlserver', 'SQLServer'
 | 
			
		||||
 | 
			
		||||
    # remote-app category
 | 
			
		||||
    chrome = 'chrome', 'Chrome'
 | 
			
		||||
| 
						 | 
				
			
			@ -33,7 +34,7 @@ class AppType(TextChoices):
 | 
			
		|||
    @classmethod
 | 
			
		||||
    def category_types_mapper(cls):
 | 
			
		||||
        return {
 | 
			
		||||
            AppCategory.db: [cls.mysql, cls.oracle, cls.pgsql, cls.mariadb],
 | 
			
		||||
            AppCategory.db: [cls.mysql, cls.oracle, cls.pgsql, cls.mariadb, cls.sqlserver],
 | 
			
		||||
            AppCategory.remote_app: [cls.chrome, cls.mysql_workbench, cls.vmware_client, cls.custom],
 | 
			
		||||
            AppCategory.cloud: [cls.k8s]
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
# Generated by Django 3.1.12 on 2021-11-05 08:05
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('applications', '0012_auto_20211014_2209'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AlterField(
 | 
			
		||||
            model_name='application',
 | 
			
		||||
            name='type',
 | 
			
		||||
            field=models.CharField(choices=[('mysql', 'MySQL'), ('oracle', 'Oracle'), ('postgresql', 'PostgreSQL'), ('mariadb', 'MariaDB'), ('sqlserver', 'SQLServer'), ('chrome', 'Chrome'), ('mysql_workbench', 'MySQL Workbench'), ('vmware_client', 'vSphere Client'), ('custom', 'Custom'), ('k8s', 'Kubernetes')], max_length=16, verbose_name='Type'),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ from .mysql import *
 | 
			
		|||
from .mariadb import *
 | 
			
		||||
from .oracle import *
 | 
			
		||||
from .pgsql import *
 | 
			
		||||
from .sqlserver import *
 | 
			
		||||
 | 
			
		||||
from .chrome import *
 | 
			
		||||
from .mysql_workbench import *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
from rest_framework import serializers
 | 
			
		||||
from django.utils.translation import ugettext_lazy as _
 | 
			
		||||
 | 
			
		||||
from ..application_category import DBSerializer
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
__all__ = ['SQLServerSerializer']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SQLServerSerializer(DBSerializer):
 | 
			
		||||
    port = serializers.IntegerField(default=1433, label=_('Port'), allow_null=True)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -28,6 +28,7 @@ type_serializer_classes_mapping = {
 | 
			
		|||
    const.AppType.mariadb.value: application_type.MariaDBSerializer,
 | 
			
		||||
    const.AppType.oracle.value: application_type.OracleSerializer,
 | 
			
		||||
    const.AppType.pgsql.value: application_type.PostgreSerializer,
 | 
			
		||||
    const.AppType.sqlserver.value: application_type.SQLServerSerializer,
 | 
			
		||||
    # remote-app
 | 
			
		||||
    const.AppType.chrome.value: application_type.ChromeSerializer,
 | 
			
		||||
    const.AppType.mysql_workbench.value: application_type.MySQLWorkbenchSerializer,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
# Generated by Django 3.1.12 on 2021-11-05 08:05
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('assets', '0078_auto_20211014_2209'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AlterField(
 | 
			
		||||
            model_name='systemuser',
 | 
			
		||||
            name='protocol',
 | 
			
		||||
            field=models.CharField(choices=[('ssh', 'SSH'), ('rdp', 'RDP'), ('telnet', 'Telnet'), ('vnc', 'VNC'), ('mysql', 'MySQL'), ('oracle', 'Oracle'), ('mariadb', 'MariaDB'), ('postgresql', 'PostgreSQL'), ('sqlserver', 'SQLServer'), ('k8s', 'K8S')], default='ssh', max_length=16, verbose_name='Protocol'),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			@ -32,6 +32,7 @@ class ProtocolMixin:
 | 
			
		|||
        oracle = 'oracle', 'Oracle'
 | 
			
		||||
        mariadb = 'mariadb', 'MariaDB'
 | 
			
		||||
        postgresql = 'postgresql', 'PostgreSQL'
 | 
			
		||||
        sqlserver = 'sqlserver', 'SQLServer'
 | 
			
		||||
        k8s = 'k8s', 'K8S'
 | 
			
		||||
 | 
			
		||||
    SUPPORT_PUSH_PROTOCOLS = [Protocol.ssh, Protocol.rdp]
 | 
			
		||||
| 
						 | 
				
			
			@ -43,7 +44,7 @@ class ProtocolMixin:
 | 
			
		|||
        Protocol.rdp
 | 
			
		||||
    ]
 | 
			
		||||
    APPLICATION_CATEGORY_DB_PROTOCOLS = [
 | 
			
		||||
        Protocol.mysql, Protocol.oracle, Protocol.mariadb, Protocol.postgresql
 | 
			
		||||
        Protocol.mysql, Protocol.oracle, Protocol.mariadb, Protocol.postgresql, Protocol.sqlserver
 | 
			
		||||
    ]
 | 
			
		||||
    APPLICATION_CATEGORY_CLOUD_PROTOCOLS = [
 | 
			
		||||
        Protocol.k8s
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
# Generated by Django 3.1.12 on 2021-11-05 08:05
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('perms', '0020_auto_20210910_1103'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AlterField(
 | 
			
		||||
            model_name='applicationpermission',
 | 
			
		||||
            name='type',
 | 
			
		||||
            field=models.CharField(choices=[('mysql', 'MySQL'), ('oracle', 'Oracle'), ('postgresql', 'PostgreSQL'), ('mariadb', 'MariaDB'), ('sqlserver', 'SQLServer'), ('chrome', 'Chrome'), ('mysql_workbench', 'MySQL Workbench'), ('vmware_client', 'vSphere Client'), ('custom', 'Custom'), ('k8s', 'Kubernetes')], max_length=16, verbose_name='Type'),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
# Generated by Django 3.1.12 on 2021-11-05 08:05
 | 
			
		||||
 | 
			
		||||
from django.db import migrations, models
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Migration(migrations.Migration):
 | 
			
		||||
 | 
			
		||||
    dependencies = [
 | 
			
		||||
        ('terminal', '0040_sessionjoinrecord_sessionsharing'),
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    operations = [
 | 
			
		||||
        migrations.AlterField(
 | 
			
		||||
            model_name='session',
 | 
			
		||||
            name='protocol',
 | 
			
		||||
            field=models.CharField(choices=[('ssh', 'ssh'), ('rdp', 'rdp'), ('vnc', 'vnc'), ('telnet', 'telnet'), ('mysql', 'mysql'), ('oracle', 'oracle'), ('mariadb', 'mariadb'), ('sqlserver', 'sqlserver'), ('postgresql', 'postgresql'), ('k8s', 'kubernetes')], db_index=True, default='ssh', max_length=16),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
| 
						 | 
				
			
			@ -31,6 +31,7 @@ class Session(OrgModelMixin):
 | 
			
		|||
        MYSQL = 'mysql', 'mysql'
 | 
			
		||||
        ORACLE = 'oracle', 'oracle'
 | 
			
		||||
        MARIADB = 'mariadb', 'mariadb'
 | 
			
		||||
        SQLSERVER = 'sqlserver', 'sqlserver'
 | 
			
		||||
        POSTGRESQL = 'postgresql', 'postgresql'
 | 
			
		||||
        K8S = 'k8s', 'kubernetes'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -122,7 +123,7 @@ class Session(OrgModelMixin):
 | 
			
		|||
    @property
 | 
			
		||||
    def db_protocols(self):
 | 
			
		||||
        _PROTOCOL = self.PROTOCOL
 | 
			
		||||
        return [_PROTOCOL.MYSQL, _PROTOCOL.MARIADB, _PROTOCOL.ORACLE, _PROTOCOL.POSTGRESQL]
 | 
			
		||||
        return [_PROTOCOL.MYSQL, _PROTOCOL.MARIADB, _PROTOCOL.ORACLE, _PROTOCOL.POSTGRESQL, _PROTOCOL.SQLSERVER]
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def can_terminate(self):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue