pref: 修改 filter

pull/8991/head
ibuler 2022-10-19 10:21:05 +08:00
parent 8c92a9934b
commit d6e36c873d
5 changed files with 11 additions and 14 deletions

View File

@ -34,11 +34,6 @@ class AccountViewSet(OrgBulkModelViewSet):
account = super().get_object()
task = test_accounts_connectivity_manual.delay([account.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):
@ -49,6 +44,7 @@ class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet):
'default': serializers.AccountSecretSerializer
}
http_method_names = ['get']
# Todo: 记得打开
# permission_classes = [RBACPermission, UserConfirmation.require(ConfirmType.MFA)]
rbac_perms = {
'list': 'assets.view_assetaccountsecret',

View File

@ -163,7 +163,7 @@ class AccountFilterSet(BaseFilterSet):
username = drf_filters.CharFilter(field_name="username", 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')
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')
has_secret = drf_filters.BooleanFilter(method='filter_has_secret')
@ -177,7 +177,7 @@ class AccountFilterSet(BaseFilterSet):
@staticmethod
def filter_nodes(queryset, name, value):
nodes = Node.objects.filter(id__in=value)
nodes = Node.objects.filter(id=value)
if not nodes:
return queryset

View File

@ -6,8 +6,9 @@ from django.utils.translation import ugettext_lazy as _
from django.db.transaction import atomic
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 orgs.mixins.serializers import OrgResourceSerializerMixin
from ..account import AccountSerializer
from ...models import Asset, Node, Platform, Label, Domain, Account, Protocol
from ...const import Category, AllTypes
@ -57,7 +58,7 @@ class AssetAccountSerializer(AccountSerializer):
fields = fields_mini + fields_write_only
class AssetSerializer(JMSWritableNestedModelSerializer):
class AssetSerializer(OrgResourceSerializerMixin, WritableNestedModelSerializer):
category = LabeledChoiceField(choices=Category.choices, read_only=True, label=_('Category'))
type = LabeledChoiceField(choices=AllTypes.choices(), read_only=True, label=_('Type'))
domain = ObjectRelatedField(required=False, queryset=Domain.objects, label=_('Domain'), allow_null=True)

View File

@ -2,7 +2,7 @@ from rest_framework import serializers
from django.utils.translation import gettext_lazy as _
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 ..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"))
category = LabeledChoiceField(choices=Category.choices, label=_("Category"))
protocols = PlatformProtocolsSerializer(label=_('Protocols'), many=True, required=False)

View File

@ -5,7 +5,7 @@ from rest_framework.serializers import ModelSerializer
from rest_framework_bulk.serializers import BulkListSerializer
from django.utils.translation import gettext_lazy as _
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
@ -13,7 +13,7 @@ from .mixin import BulkListSerializerMixin, BulkSerializerMixin
__all__ = [
'MethodSerializer', 'EmptySerializer', 'BulkModelSerializer',
'AdaptedBulkListSerializer', 'CeleryTaskSerializer',
'JMSWritableNestedModelSerializer',
'WritableNestedModelSerializer',
'GroupedChoiceSerializer',
]
@ -86,5 +86,5 @@ class GroupedChoiceSerializer(ChoiceSerializer):
children = ChoiceSerializer(many=True, label=_("Children"))
class JMSWritableNestedModelSerializer(ModelSerializer):
class WritableNestedModelSerializer(NestedModelSerializer):
pass