mirror of https://github.com/jumpserver/jumpserver
perf: 修改 command filter
parent
19c3f98e8f
commit
a6aafaec05
|
@ -1,3 +1,4 @@
|
|||
from .command_acl import *
|
||||
from .login_acl import *
|
||||
from .login_asset_acl import *
|
||||
from .login_asset_check import *
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
from orgs.mixins.api import OrgBulkModelViewSet
|
||||
from .. import models, serializers
|
||||
|
||||
|
||||
__all__ = ['CommandFilterACLViewSet']
|
||||
|
||||
|
||||
class CommandGroupViewSet(OrgBulkModelViewSet):
|
||||
model = models.CommandGroup
|
||||
filterset_fields = ('name',)
|
||||
search_fields = filterset_fields
|
||||
serializer_class = serializers.CommandGroupSerializer
|
||||
|
||||
|
||||
class CommandFilterACLViewSet(OrgBulkModelViewSet):
|
||||
model = models.CommandFilterACL
|
||||
filterset_fields = ('name', )
|
||||
filterset_fields = ('name',)
|
||||
search_fields = filterset_fields
|
||||
serializer_class = serializers.LoginAssetACLSerializer
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
from .command_filter import *
|
||||
from .login_acl import *
|
||||
from .login_asset_acl import *
|
||||
from .login_asset_check import *
|
||||
|
|
|
@ -3,14 +3,20 @@ from django.utils.translation import ugettext_lazy as _
|
|||
from acls.models import CommandGroup, CommandFilterACL
|
||||
from common.drf.fields import ObjectRelatedField
|
||||
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
|
||||
from .base import BaseUserAssetAccountACLSerializerMixin
|
||||
from .base import BaseUserAssetAccountACLSerializerMixin as BaseSerializer
|
||||
|
||||
__all__ = ["CommandFilterACLSerializer"]
|
||||
__all__ = ["CommandFilterACLSerializer", "CommandGroupSerializer"]
|
||||
|
||||
|
||||
class CommandFilterACLSerializer(BaseUserAssetAccountACLSerializerMixin, BulkOrgResourceModelSerializer):
|
||||
class CommandGroupSerializer(BulkOrgResourceModelSerializer):
|
||||
class Meta:
|
||||
model = CommandGroup
|
||||
fields = ['id', 'name', 'type', 'content', 'comment']
|
||||
|
||||
|
||||
class CommandFilterACLSerializer(BaseSerializer, BulkOrgResourceModelSerializer):
|
||||
commands = ObjectRelatedField(queryset=CommandGroup.objects, many=True, required=False, label=_('Commands'))
|
||||
|
||||
class Meta(BaseUserAssetAccountACLSerializerMixin.Meta):
|
||||
class Meta(BaseSerializer.Meta):
|
||||
model = CommandFilterACL
|
||||
fields = BaseUserAssetAccountACLSerializerMixin.Meta.fields + ['commands']
|
||||
fields = BaseSerializer.Meta.fields + ['commands']
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
from django.utils.translation import ugettext as _
|
||||
from rest_framework import serializers
|
||||
from common.drf.serializers import BulkModelSerializer
|
||||
from common.drf.serializers import MethodSerializer
|
||||
from common.drf.fields import ObjectRelatedField
|
||||
|
||||
from common.drf.fields import ObjectRelatedField, LabeledChoiceField
|
||||
from common.drf.serializers import BulkModelSerializer, MethodSerializer
|
||||
from jumpserver.utils import has_valid_xpack_license
|
||||
from users.models import User
|
||||
from ..models import LoginACL
|
||||
from .rules import RuleSerializer
|
||||
from ..models import LoginACL
|
||||
|
||||
__all__ = [
|
||||
"LoginACLSerializer",
|
||||
|
@ -22,9 +22,7 @@ class LoginACLSerializer(BulkModelSerializer):
|
|||
reviewers = ObjectRelatedField(
|
||||
queryset=User.objects, label=_("Reviewers"), many=True, required=False
|
||||
)
|
||||
action_display = serializers.ReadOnlyField(
|
||||
source="get_action_display", label=_("Action")
|
||||
)
|
||||
action = LabeledChoiceField(choices=LoginACL.ActionChoices.choices)
|
||||
reviewers_amount = serializers.IntegerField(
|
||||
read_only=True, source="reviewers.count"
|
||||
)
|
||||
|
@ -34,17 +32,9 @@ class LoginACLSerializer(BulkModelSerializer):
|
|||
model = LoginACL
|
||||
fields_mini = ["id", "name"]
|
||||
fields_small = fields_mini + [
|
||||
"priority",
|
||||
"rules",
|
||||
"action",
|
||||
"action_display",
|
||||
"is_active",
|
||||
"user",
|
||||
"date_created",
|
||||
"date_updated",
|
||||
"reviewers_amount",
|
||||
"comment",
|
||||
"created_by",
|
||||
"priority", "user", "rules", "action",
|
||||
"is_active", "date_created", "date_updated",
|
||||
"reviewers_amount", "comment", "created_by",
|
||||
]
|
||||
fields_fk = ["user"]
|
||||
fields_m2m = ["reviewers"]
|
||||
|
@ -65,7 +55,7 @@ class LoginACLSerializer(BulkModelSerializer):
|
|||
return
|
||||
choices = action._choices
|
||||
if not has_valid_xpack_license():
|
||||
choices.pop(LoginACL.ActionChoices.confirm, None)
|
||||
choices.pop(LoginACL.ActionChoices.review, None)
|
||||
action._choices = choices
|
||||
|
||||
def get_rules_serializer(self):
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
from orgs.mixins.serializers import BulkOrgResourceModelSerializer
|
||||
|
||||
from .base import BaseUserAssetAccountACLSerializerMixin
|
||||
from .base import BaseUserAssetAccountACLSerializerMixin as BaseSerializer
|
||||
from ..models import LoginAssetACL
|
||||
|
||||
__all__ = ["LoginAssetACLSerializer"]
|
||||
|
||||
|
||||
class LoginAssetACLSerializer(BaseUserAssetAccountACLSerializerMixin, BulkOrgResourceModelSerializer):
|
||||
class Meta(BaseUserAssetAccountACLSerializerMixin.Meta):
|
||||
class LoginAssetACLSerializer(BaseSerializer, BulkOrgResourceModelSerializer):
|
||||
class Meta(BaseSerializer.Meta):
|
||||
model = LoginAssetACL
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
from django.urls import path
|
||||
from rest_framework_bulk.routes import BulkRouter
|
||||
|
||||
from .. import api
|
||||
|
||||
|
||||
app_name = 'acls'
|
||||
|
||||
|
||||
router = BulkRouter()
|
||||
router.register(r'login-acls', api.LoginACLViewSet, 'login-acl')
|
||||
router.register(r'login-asset-acls', api.LoginAssetACLViewSet, 'login-asset-acl')
|
||||
router.register(r'command-filter-acls', api.CommandFilterACLViewSet, 'command-filter-acl')
|
||||
|
||||
urlpatterns = [
|
||||
path('login-asset/check/', api.LoginAssetCheckAPI.as_view(), name='login-asset-check'),
|
||||
|
|
Loading…
Reference in New Issue