mirror of https://github.com/jumpserver/jumpserver
[Update] 修改asset api
parent
3e17e94245
commit
4d1da56872
|
@ -30,10 +30,8 @@ from .. import serializers
|
||||||
|
|
||||||
logger = get_logger(__file__)
|
logger = get_logger(__file__)
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'NodeViewSet', 'NodeChildrenApi',
|
'NodeViewSet', 'NodeChildrenApi', 'NodeAssetsApi',
|
||||||
'NodeAssetsApi',
|
'NodeAddAssetsApi', 'NodeRemoveAssetsApi', 'NodeReplaceAssetsApi',
|
||||||
'NodeAddAssetsApi', 'NodeRemoveAssetsApi',
|
|
||||||
'NodeReplaceAssetsApi',
|
|
||||||
'NodeAddChildrenApi', 'RefreshNodeHardwareInfoApi',
|
'NodeAddChildrenApi', 'RefreshNodeHardwareInfoApi',
|
||||||
'TestNodeConnectiveApi'
|
'TestNodeConnectiveApi'
|
||||||
]
|
]
|
||||||
|
|
|
@ -64,6 +64,9 @@ class Node(OrgModelMixin):
|
||||||
def create_child(self, value):
|
def create_child(self, value):
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
child_key = self.get_next_child_key()
|
child_key = self.get_next_child_key()
|
||||||
|
print("Create child")
|
||||||
|
print(self.key)
|
||||||
|
print(child_key)
|
||||||
child = self.__class__.objects.create(key=child_key, value=value)
|
child = self.__class__.objects.create(key=child_key, value=value)
|
||||||
return child
|
return child
|
||||||
|
|
||||||
|
@ -120,15 +123,16 @@ class Node(OrgModelMixin):
|
||||||
return self.get_all_assets().valid()
|
return self.get_all_assets().valid()
|
||||||
|
|
||||||
def is_root(self):
|
def is_root(self):
|
||||||
root = self.__class__.root()
|
print(type(self.key))
|
||||||
if self == root:
|
print(self.key)
|
||||||
|
if self.key.isdigit():
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def parent(self):
|
def parent(self):
|
||||||
if self.key == "0" or not self.key.startswith("0"):
|
if self.is_root():
|
||||||
return self.__class__.root()
|
return self.__class__.root()
|
||||||
parent_key = ":".join(self.key.split(":")[:-1])
|
parent_key = ":".join(self.key.split(":")[:-1])
|
||||||
try:
|
try:
|
||||||
|
@ -155,7 +159,7 @@ class Node(OrgModelMixin):
|
||||||
if self.is_root():
|
if self.is_root():
|
||||||
root = self.__class__.root()
|
root = self.__class__.root()
|
||||||
return [root]
|
return [root]
|
||||||
|
print(self.key)
|
||||||
_key = self.key.split(':')
|
_key = self.key.split(':')
|
||||||
if not with_self:
|
if not with_self:
|
||||||
_key.pop()
|
_key.pop()
|
||||||
|
|
|
@ -411,6 +411,8 @@ function initTree() {
|
||||||
zNodes = data;
|
zNodes = data;
|
||||||
$.fn.zTree.init($("#assetTree"), setting, zNodes);
|
$.fn.zTree.init($("#assetTree"), setting, zNodes);
|
||||||
zTree = $.fn.zTree.getZTreeObj("assetTree");
|
zTree = $.fn.zTree.getZTreeObj("assetTree");
|
||||||
|
var root = zTree.getNodes()[0];
|
||||||
|
zTree.expandNode(root);
|
||||||
rMenu = $("#rMenu");
|
rMenu = $("#rMenu");
|
||||||
selectQueryNode();
|
selectQueryNode();
|
||||||
});
|
});
|
||||||
|
|
|
@ -44,7 +44,7 @@ class AssetListView(AdminUserRequiredMixin, TemplateView):
|
||||||
template_name = 'assets/asset_list.html'
|
template_name = 'assets/asset_list.html'
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
Node.root()
|
print(Node.root().name)
|
||||||
context = {
|
context = {
|
||||||
'app': _('Assets'),
|
'app': _('Assets'),
|
||||||
'action': _('Asset list'),
|
'action': _('Asset list'),
|
||||||
|
|
|
@ -7,7 +7,7 @@ from django.contrib.auth import get_user_model
|
||||||
from django.forms import ModelForm
|
from django.forms import ModelForm
|
||||||
|
|
||||||
from common.utils import get_logger
|
from common.utils import get_logger
|
||||||
from .utils import get_current_org, get_model_by_db_table, set_current_org
|
from .utils import get_current_org, set_current_org
|
||||||
|
|
||||||
logger = get_logger(__file__)
|
logger = get_logger(__file__)
|
||||||
|
|
||||||
|
@ -22,23 +22,27 @@ class OrgManager(models.Manager):
|
||||||
current_org = get_current_org()
|
current_org = get_current_org()
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
|
|
||||||
|
print(">>>>>>>>>> Get query set")
|
||||||
if not current_org:
|
if not current_org:
|
||||||
kwargs['id'] = None
|
kwargs['id'] = None
|
||||||
elif current_org.is_real():
|
elif current_org.is_real():
|
||||||
kwargs['org'] = current_org
|
kwargs['org'] = current_org
|
||||||
elif current_org.is_default():
|
elif current_org.is_default():
|
||||||
kwargs['org'] = None
|
kwargs['org'] = None
|
||||||
queryset = super().get_queryset().filter(**kwargs)
|
queryset = super(OrgManager, self).get_queryset()
|
||||||
|
queryset = queryset.filter(**kwargs)
|
||||||
|
# print(kwargs)
|
||||||
|
print(queryset.query)
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def all(self):
|
def all(self):
|
||||||
current_org = get_current_org()
|
current_org = get_current_org()
|
||||||
if not current_org:
|
if not current_org:
|
||||||
msg = 'You should `objects.set_current_org(org).all()` then run it'
|
msg = 'You can `objects.set_current_org(org).all()` then run it'
|
||||||
warnings.warn(msg)
|
warnings.warn(msg)
|
||||||
return self
|
return self
|
||||||
else:
|
else:
|
||||||
return super().all()
|
return super(OrgManager, self).all()
|
||||||
|
|
||||||
def set_current_org(self, org):
|
def set_current_org(self, org):
|
||||||
set_current_org(org)
|
set_current_org(org)
|
||||||
|
|
|
@ -35,10 +35,9 @@ def set_current_org(org):
|
||||||
setattr(_thread_locals, 'current_org', org)
|
setattr(_thread_locals, 'current_org', org)
|
||||||
|
|
||||||
|
|
||||||
def get_model_by_db_table(db_table):
|
def set_to_default_org():
|
||||||
for model in apps.get_models():
|
set_current_org(Organization.default())
|
||||||
if model._meta.db_table == db_table:
|
|
||||||
return model
|
|
||||||
else:
|
def set_to_root_org():
|
||||||
# here you can do fallback logic if no model with db_table found
|
set_current_org(Organization.root())
|
||||||
raise ValueError('No model found with db_table {}!'.format(db_table))
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ __all__ = ['UserGroup']
|
||||||
|
|
||||||
class UserGroup(OrgModelMixin):
|
class UserGroup(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'))
|
||||||
|
@ -22,6 +22,7 @@ class UserGroup(OrgModelMixin):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
ordering = ['name']
|
ordering = ['name']
|
||||||
|
unique_together = ['org', 'name']
|
||||||
verbose_name = _("User group")
|
verbose_name = _("User group")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
Loading…
Reference in New Issue