perf: 修改支持 Django4

This commit is contained in:
ibuler
2023-07-24 11:52:25 +08:00
parent 16660575b7
commit b4b9c805ff
243 changed files with 546 additions and 614 deletions

View File

@@ -1,5 +1,5 @@
from django.shortcuts import get_object_or_404
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from rest_framework import status
from rest_framework.decorators import action
from rest_framework.request import Request

View File

@@ -1,15 +1,15 @@
# coding: utf-8
#
from rest_framework import viewsets, generics, status
from rest_framework.response import Response
from rest_framework.request import Request
from rest_framework.decorators import action
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from django_filters import utils
from rest_framework import viewsets, generics, status
from rest_framework.decorators import action
from rest_framework.request import Request
from rest_framework.response import Response
from terminal import const
from common.const.http import GET
from terminal import const
from terminal.filters import CommandStorageFilter, CommandFilter, CommandFilterForStorageTree
from terminal.models import CommandStorage, ReplayStorage
from terminal.serializers import CommandStorageSerializer, ReplayStorageSerializer
@@ -78,26 +78,26 @@ class CommandStorageViewSet(BaseStorageViewSetMixin, viewsets.ModelViewSet):
invalid = _('Invalid')
nodes = [
{
'id': storage.id,
'name': f'{storage.name}({storage.type})({command_count})',
'title': f'{storage.name}({storage.type})',
'pId': 'root',
'isParent': False,
'open': False,
'valid': True,
} for storage, command_count in storages_with_count
] + [
{
'id': storage.id,
'name': f'{storage.name}({storage.type}) *{invalid}',
'title': f'{storage.name}({storage.type})',
'pId': 'root',
'isParent': False,
'open': False,
'valid': False,
} for storage in invalid_storages
]
{
'id': storage.id,
'name': f'{storage.name}({storage.type})({command_count})',
'title': f'{storage.name}({storage.type})',
'pId': 'root',
'isParent': False,
'open': False,
'valid': True,
} for storage, command_count in storages_with_count
] + [
{
'id': storage.id,
'name': f'{storage.name}({storage.type}) *{invalid}',
'title': f'{storage.name}({storage.type})',
'pId': 'root',
'isParent': False,
'open': False,
'valid': False,
} for storage in invalid_storages
]
nodes.append(root)
return Response(data=nodes)

View File

@@ -8,7 +8,7 @@ from django.db.models import F
from django.http import FileResponse
from django.shortcuts import get_object_or_404, reverse
from django.utils.encoding import escape_uri_path
from django.utils.translation import ugettext as _
from django.utils.translation import gettext as _
from django_filters import rest_framework as filters
from rest_framework import generics
from rest_framework import viewsets, views

View File

@@ -1,5 +1,5 @@
from django.conf import settings
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from rest_framework.decorators import action
from rest_framework.exceptions import MethodNotAllowed, ValidationError
from rest_framework.response import Response

View File

@@ -4,7 +4,7 @@ import uuid
from datetime import datetime
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from common.utils.common import lazyproperty
from orgs.mixins.models import OrgModelMixin
@@ -12,7 +12,6 @@ from terminal.const import RiskLevelChoices
class AbstractSessionCommand(OrgModelMixin):
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
user = models.CharField(max_length=64, db_index=True, verbose_name=_("User"))
asset = models.CharField(max_length=128, db_index=True, verbose_name=_("Asset"))

View File

@@ -5,7 +5,7 @@ from collections import defaultdict
from django.conf import settings
from django.db.models import TextChoices
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from assets.const import Protocol
from .const import TerminalType

View File

@@ -2,7 +2,7 @@
#
from django.db.models import TextChoices, IntegerChoices
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
class RiskLevelChoices(IntegerChoices):

View File

@@ -1,4 +1,4 @@
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from common.exceptions import JMSException
@@ -11,4 +11,3 @@ class BulkCreateNotSupport(JMSException):
class StorageInvalid(JMSException):
default_code = 'storage_invalid'
default_detail = _('Storage is invalid')

View File

@@ -1,6 +1,6 @@
from django.core.validators import MinValueValidator, MaxValueValidator
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from assets.models import Asset
from common.db.fields import PortField

View File

@@ -3,7 +3,7 @@ import uuid
from django.core.cache import cache
from django.db import models
from django.forms.models import model_to_dict
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from common.utils import get_logger

View File

@@ -7,7 +7,7 @@ from importlib import import_module
import jms_storage
from django.conf import settings
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from common.db.fields import EncryptJsonDictTextField
from common.db.models import JMSBaseModel

View File

@@ -1,7 +1,7 @@
from __future__ import unicode_literals
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from common.db.models import JMSBaseModel
from .terminal import Terminal

View File

@@ -1,9 +1,9 @@
import time
import uuid
from django.conf import settings
from django.core.cache import cache
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from common.const.signals import SKIP_SIGNAL
from common.db.models import JMSBaseModel

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from django.db import models
from django.db.models.signals import post_save
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from terminal.backends.command.models import AbstractSessionCommand

View File

@@ -1,5 +1,5 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from common.db.models import JMSBaseModel
from .session import Session

View File

@@ -8,7 +8,7 @@ from django.core.cache import cache
from django.core.files.storage import default_storage
from django.db import models
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from assets.models import Asset
from common.utils import get_object_or_none, lazyproperty

View File

@@ -2,7 +2,7 @@ import datetime
from django.db import models
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from common.db.models import JMSBaseModel
from orgs.mixins.models import OrgModelMixin

View File

@@ -2,7 +2,7 @@ from typing import Callable
from django.conf import settings
from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from common.utils import get_logger, reverse
from common.utils import lazyproperty
@@ -10,9 +10,9 @@ from common.utils.timezone import local_now_display
from notifications.backends import BACKEND
from notifications.models import SystemMsgSubscription
from notifications.notifications import SystemMessage, UserMessage
from terminal.const import RiskLevelChoices
from terminal.models import Session, Command
from users.models import User
from terminal.const import RiskLevelChoices
logger = get_logger(__name__)

View File

@@ -1,18 +1,17 @@
# ~*~ coding: utf-8 ~*~
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from common.utils import pretty_string, is_uuid, get_logger
from common.serializers.fields import LabeledChoiceField
from terminal.models import Command
from common.utils import pretty_string, is_uuid, get_logger
from terminal.const import RiskLevelChoices
from terminal.models import Command
logger = get_logger(__name__)
__all__ = ['SessionCommandSerializer', 'InsecureCommandAlertSerializer']
class SimpleSessionCommandSerializer(serializers.ModelSerializer):
""" 简单Session命令序列类, 用来提取公共字段 """
user = serializers.CharField(label=_("User")) # 限制 64 字符,见 validate_user
asset = serializers.CharField(max_length=128, label=_("Asset"))

View File

@@ -1,4 +1,4 @@
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from common.serializers.fields import LabeledChoiceField

View File

@@ -1,4 +1,4 @@
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from common.serializers.fields import LabeledChoiceField

View File

@@ -1,15 +1,17 @@
# -*- coding: utf-8 -*-
#
from urllib.parse import urlparse
from django.db.models import TextChoices
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from rest_framework.validators import UniqueValidator
from urllib.parse import urlparse
from django.utils.translation import ugettext_lazy as _
from django.db.models import TextChoices
from common.serializers.fields import LabeledChoiceField
from common.serializers import MethodSerializer
from common.serializers.fields import LabeledChoiceField
from common.serializers.fields import ReadableHiddenField, EncryptedField
from ..models import ReplayStorage, CommandStorage
from .. import const
from ..models import ReplayStorage, CommandStorage
# Replay storage serializers

View File

@@ -1,4 +1,4 @@
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from common.serializers import BulkModelSerializer

View File

@@ -1,6 +1,6 @@
from django.conf import settings
from django.core.cache import cache
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from assets.const import DatabaseTypes
from assets.models import Database