mirror of https://github.com/jumpserver/jumpserver
pref: 修改 filter
parent
8c92a9934b
commit
d6e36c873d
|
@ -34,11 +34,6 @@ class AccountViewSet(OrgBulkModelViewSet):
|
||||||
account = super().get_object()
|
account = super().get_object()
|
||||||
task = test_accounts_connectivity_manual.delay([account.id])
|
task = test_accounts_connectivity_manual.delay([account.id])
|
||||||
return Response(data={'task': task.id})
|
return Response(data={'task': task.id})
|
||||||
#
|
|
||||||
# @action(methods=['get'], detail=True, url_path='secret')
|
|
||||||
# def get_secret(self, request, *args, **kwargs):
|
|
||||||
# account = super().get_object()
|
|
||||||
# return Response(data={'secret': account.secret})
|
|
||||||
|
|
||||||
|
|
||||||
class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet):
|
class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet):
|
||||||
|
@ -49,6 +44,7 @@ class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet):
|
||||||
'default': serializers.AccountSecretSerializer
|
'default': serializers.AccountSecretSerializer
|
||||||
}
|
}
|
||||||
http_method_names = ['get']
|
http_method_names = ['get']
|
||||||
|
# Todo: 记得打开
|
||||||
# permission_classes = [RBACPermission, UserConfirmation.require(ConfirmType.MFA)]
|
# permission_classes = [RBACPermission, UserConfirmation.require(ConfirmType.MFA)]
|
||||||
rbac_perms = {
|
rbac_perms = {
|
||||||
'list': 'assets.view_assetaccountsecret',
|
'list': 'assets.view_assetaccountsecret',
|
||||||
|
|
|
@ -163,7 +163,7 @@ class AccountFilterSet(BaseFilterSet):
|
||||||
username = drf_filters.CharFilter(field_name="username", lookup_expr='exact')
|
username = drf_filters.CharFilter(field_name="username", lookup_expr='exact')
|
||||||
address = drf_filters.CharFilter(field_name="asset__address", lookup_expr='exact')
|
address = drf_filters.CharFilter(field_name="asset__address", lookup_expr='exact')
|
||||||
asset = drf_filters.CharFilter(field_name="asset_id", lookup_expr='exact')
|
asset = drf_filters.CharFilter(field_name="asset_id", lookup_expr='exact')
|
||||||
assets = drf_filters.CharFilter(field_name='asset_id', lookup_expr='in')
|
assets = drf_filters.CharFilter(field_name='asset_id', lookup_expr='exact')
|
||||||
nodes = drf_filters.CharFilter(method='filter_nodes')
|
nodes = drf_filters.CharFilter(method='filter_nodes')
|
||||||
has_secret = drf_filters.BooleanFilter(method='filter_has_secret')
|
has_secret = drf_filters.BooleanFilter(method='filter_has_secret')
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ class AccountFilterSet(BaseFilterSet):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def filter_nodes(queryset, name, value):
|
def filter_nodes(queryset, name, value):
|
||||||
nodes = Node.objects.filter(id__in=value)
|
nodes = Node.objects.filter(id=value)
|
||||||
if not nodes:
|
if not nodes:
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,9 @@ from django.utils.translation import ugettext_lazy as _
|
||||||
from django.db.transaction import atomic
|
from django.db.transaction import atomic
|
||||||
from django.db.models import F
|
from django.db.models import F
|
||||||
|
|
||||||
from common.drf.serializers import JMSWritableNestedModelSerializer
|
from common.drf.serializers import WritableNestedModelSerializer
|
||||||
from common.drf.fields import LabeledChoiceField, ObjectRelatedField
|
from common.drf.fields import LabeledChoiceField, ObjectRelatedField
|
||||||
|
from orgs.mixins.serializers import OrgResourceSerializerMixin
|
||||||
from ..account import AccountSerializer
|
from ..account import AccountSerializer
|
||||||
from ...models import Asset, Node, Platform, Label, Domain, Account, Protocol
|
from ...models import Asset, Node, Platform, Label, Domain, Account, Protocol
|
||||||
from ...const import Category, AllTypes
|
from ...const import Category, AllTypes
|
||||||
|
@ -57,7 +58,7 @@ class AssetAccountSerializer(AccountSerializer):
|
||||||
fields = fields_mini + fields_write_only
|
fields = fields_mini + fields_write_only
|
||||||
|
|
||||||
|
|
||||||
class AssetSerializer(JMSWritableNestedModelSerializer):
|
class AssetSerializer(OrgResourceSerializerMixin, WritableNestedModelSerializer):
|
||||||
category = LabeledChoiceField(choices=Category.choices, read_only=True, label=_('Category'))
|
category = LabeledChoiceField(choices=Category.choices, read_only=True, label=_('Category'))
|
||||||
type = LabeledChoiceField(choices=AllTypes.choices(), read_only=True, label=_('Type'))
|
type = LabeledChoiceField(choices=AllTypes.choices(), read_only=True, label=_('Type'))
|
||||||
domain = ObjectRelatedField(required=False, queryset=Domain.objects, label=_('Domain'), allow_null=True)
|
domain = ObjectRelatedField(required=False, queryset=Domain.objects, label=_('Domain'), allow_null=True)
|
||||||
|
|
|
@ -2,7 +2,7 @@ from rest_framework import serializers
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from common.drf.fields import LabeledChoiceField
|
from common.drf.fields import LabeledChoiceField
|
||||||
from common.drf.serializers import JMSWritableNestedModelSerializer
|
from common.drf.serializers import WritableNestedModelSerializer
|
||||||
from ..models import Platform, PlatformProtocol, PlatformAutomation
|
from ..models import Platform, PlatformProtocol, PlatformAutomation
|
||||||
from ..const import Category, AllTypes
|
from ..const import Category, AllTypes
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ class PlatformProtocolsSerializer(serializers.ModelSerializer):
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class PlatformSerializer(JMSWritableNestedModelSerializer):
|
class PlatformSerializer(WritableNestedModelSerializer):
|
||||||
type = LabeledChoiceField(choices=AllTypes.choices(), label=_("Type"))
|
type = LabeledChoiceField(choices=AllTypes.choices(), label=_("Type"))
|
||||||
category = LabeledChoiceField(choices=Category.choices, label=_("Category"))
|
category = LabeledChoiceField(choices=Category.choices, label=_("Category"))
|
||||||
protocols = PlatformProtocolsSerializer(label=_('Protocols'), many=True, required=False)
|
protocols = PlatformProtocolsSerializer(label=_('Protocols'), many=True, required=False)
|
||||||
|
|
|
@ -5,7 +5,7 @@ from rest_framework.serializers import ModelSerializer
|
||||||
from rest_framework_bulk.serializers import BulkListSerializer
|
from rest_framework_bulk.serializers import BulkListSerializer
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from django.utils.functional import cached_property
|
from django.utils.functional import cached_property
|
||||||
from drf_writable_nested.serializers import WritableNestedModelSerializer
|
from drf_writable_nested.serializers import WritableNestedModelSerializer as NestedModelSerializer
|
||||||
|
|
||||||
from .mixin import BulkListSerializerMixin, BulkSerializerMixin
|
from .mixin import BulkListSerializerMixin, BulkSerializerMixin
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ from .mixin import BulkListSerializerMixin, BulkSerializerMixin
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'MethodSerializer', 'EmptySerializer', 'BulkModelSerializer',
|
'MethodSerializer', 'EmptySerializer', 'BulkModelSerializer',
|
||||||
'AdaptedBulkListSerializer', 'CeleryTaskSerializer',
|
'AdaptedBulkListSerializer', 'CeleryTaskSerializer',
|
||||||
'JMSWritableNestedModelSerializer',
|
'WritableNestedModelSerializer',
|
||||||
'GroupedChoiceSerializer',
|
'GroupedChoiceSerializer',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -86,5 +86,5 @@ class GroupedChoiceSerializer(ChoiceSerializer):
|
||||||
children = ChoiceSerializer(many=True, label=_("Children"))
|
children = ChoiceSerializer(many=True, label=_("Children"))
|
||||||
|
|
||||||
|
|
||||||
class JMSWritableNestedModelSerializer(ModelSerializer):
|
class WritableNestedModelSerializer(NestedModelSerializer):
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in New Issue