mirror of https://github.com/jumpserver/jumpserver
Merge pull request #4242 from jumpserver/dev_cloud
feat(node + domain + domain_migrate): NodeModel添加get_or_create_child()方法,修改网域唯一字段 org_id+namepull/4255/head
commit
afcb6bd77c
|
@ -0,0 +1,22 @@
|
||||||
|
# Generated by Django 2.2.10 on 2020-07-02 08:02
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('assets', '0049_systemuser_sftp_root'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='domain',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(max_length=128, verbose_name='Name'),
|
||||||
|
),
|
||||||
|
migrations.AlterUniqueTogether(
|
||||||
|
name='domain',
|
||||||
|
unique_together={('org_id', 'name')},
|
||||||
|
),
|
||||||
|
]
|
|
@ -17,13 +17,14 @@ __all__ = ['Domain', 'Gateway']
|
||||||
|
|
||||||
class Domain(OrgModelMixin):
|
class Domain(OrgModelMixin):
|
||||||
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
|
||||||
name = models.CharField(max_length=128, unique=True, verbose_name=_('Name'))
|
name = models.CharField(max_length=128, verbose_name=_('Name'))
|
||||||
comment = models.TextField(blank=True, verbose_name=_('Comment'))
|
comment = models.TextField(blank=True, verbose_name=_('Comment'))
|
||||||
date_created = models.DateTimeField(auto_now_add=True, null=True,
|
date_created = models.DateTimeField(auto_now_add=True, null=True,
|
||||||
verbose_name=_('Date created'))
|
verbose_name=_('Date created'))
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = _("Domain")
|
verbose_name = _("Domain")
|
||||||
|
unique_together = [('org_id', 'name')]
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
|
@ -199,6 +199,20 @@ class FamilyMixin:
|
||||||
)
|
)
|
||||||
return child
|
return child
|
||||||
|
|
||||||
|
def get_or_create_child(self, value, _id=None):
|
||||||
|
"""
|
||||||
|
:return: Node, bool (created)
|
||||||
|
"""
|
||||||
|
children = self.get_children()
|
||||||
|
exist = children.filter(value=value).exists()
|
||||||
|
if exist:
|
||||||
|
child = children.filter(value=value).first()
|
||||||
|
created = False
|
||||||
|
else:
|
||||||
|
child = self.create_child(value, _id)
|
||||||
|
created = True
|
||||||
|
return child, created
|
||||||
|
|
||||||
def get_next_child_key(self):
|
def get_next_child_key(self):
|
||||||
mark = self.child_mark
|
mark = self.child_mark
|
||||||
self.child_mark += 1
|
self.child_mark += 1
|
||||||
|
|
Loading…
Reference in New Issue