mirror of https://github.com/jumpserver/jumpserver
87 lines
5.1 KiB
Python
87 lines
5.1 KiB
Python
# Generated by Django 3.1.14 on 2022-04-12 07:39
|
|
|
|
import common.fields.model
|
|
import django.core.validators
|
|
from django.db import migrations, models
|
|
import django.db.models.deletion
|
|
import uuid
|
|
from django.conf import settings
|
|
|
|
|
|
def migrate_endpoints(apps, schema_editor):
|
|
endpoint_data = {
|
|
'id': '00000000-0000-0000-0000-000000000001',
|
|
'name': 'Default',
|
|
'host': '',
|
|
'https_port': 0,
|
|
'http_port': 0,
|
|
'created_by': 'System'
|
|
}
|
|
|
|
if settings.XRDP_ENABLED:
|
|
xrdp_addr = settings.TERMINAL_RDP_ADDR
|
|
if ':' in xrdp_addr:
|
|
hostname, port = xrdp_addr.strip().split(':')
|
|
else:
|
|
hostname, port = xrdp_addr, 3389
|
|
endpoint_data.update({
|
|
'host': '' if hostname.strip() in ['localhost', '127.0.0.1'] else hostname.strip(),
|
|
'rdp_port': int(port)
|
|
})
|
|
Endpoint = apps.get_model("terminal", "Endpoint")
|
|
Endpoint.objects.create(**endpoint_data)
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('terminal', '0047_auto_20220302_1951'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='Endpoint',
|
|
fields=[
|
|
('created_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')),
|
|
('updated_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Updated by')),
|
|
('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date created')),
|
|
('date_updated', models.DateTimeField(auto_now=True, verbose_name='Date updated')),
|
|
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
|
|
('name', models.CharField(max_length=128, unique=True, blank=True, verbose_name='Name')),
|
|
('host', models.CharField(max_length=256, verbose_name='Host')),
|
|
('https_port', common.fields.model.PortField(default=443, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(65535)], verbose_name='HTTPS Port')),
|
|
('http_port', common.fields.model.PortField(default=80, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(65535)], verbose_name='HTTP Port')),
|
|
('ssh_port', common.fields.model.PortField(default=2222, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(65535)], verbose_name='SSH Port')),
|
|
('rdp_port', common.fields.model.PortField(default=3389, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(65535)], verbose_name='RDP Port')),
|
|
('mysql_port', common.fields.model.PortField(default=33060, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(65535)], verbose_name='MySQL Port')),
|
|
('mariadb_port', common.fields.model.PortField(default=33061, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(65535)], verbose_name='MariaDB Port')),
|
|
('postgresql_port', common.fields.model.PortField(default=54320, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(65535)], verbose_name='PostgreSQL Port')),
|
|
('comment', models.TextField(blank=True, default='', verbose_name='Comment')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Endpoint',
|
|
'ordering': ('name',),
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='EndpointRule',
|
|
fields=[
|
|
('created_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')),
|
|
('updated_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Updated by')),
|
|
('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date created')),
|
|
('date_updated', models.DateTimeField(auto_now=True, verbose_name='Date updated')),
|
|
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
|
|
('name', models.CharField(max_length=128, unique=True, verbose_name='Name')),
|
|
('ip_group', models.JSONField(default=list, verbose_name='IP group')),
|
|
('priority', models.IntegerField(help_text='1-100, the lower the value will be match first', unique=True, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(100)], verbose_name='Priority')),
|
|
('comment', models.TextField(blank=True, default='', verbose_name='Comment')),
|
|
('endpoint', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='rules', to='terminal.endpoint', verbose_name='Endpoint')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Endpoint rule',
|
|
'ordering': ('priority', 'name'),
|
|
},
|
|
),
|
|
migrations.RunPython(migrate_endpoints),
|
|
]
|