Merge branch 'v3' of github.com:jumpserver/jumpserver into v3

pull/9008/head
ibuler 2022-11-01 11:53:51 +08:00
commit c9b8c087c7
6 changed files with 17 additions and 14 deletions

View File

@ -64,7 +64,7 @@ class LoginAssetACL(BaseACL, OrgModelMixin):
Q(assets__hostname_group__contains=asset.name) | Q(assets__hostname_group__contains=asset.name) |
Q(assets__hostname_group__contains='*') Q(assets__hostname_group__contains='*')
) )
ids = [q.id for q in queryset if contains_ip(asset.ip, q.assets.get('ip_group', []))] ids = [q.id for q in queryset if contains_ip(asset.address, q.assets.get('ip_group', []))]
queryset = cls.objects.filter(id__in=ids) queryset = cls.objects.filter(id__in=ids)
return queryset return queryset

View File

@ -1,6 +1,6 @@
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.generics import CreateAPIView from rest_framework.generics import CreateAPIView, get_object_or_404
from orgs.mixins.api import OrgBulkModelViewSet from orgs.mixins.api import OrgBulkModelViewSet
from rbac.permissions import RBACPermission from rbac.permissions import RBACPermission
@ -26,7 +26,7 @@ class AccountViewSet(OrgBulkModelViewSet):
} }
rbac_perms = { rbac_perms = {
'verify': 'assets.test_account', 'verify': 'assets.test_account',
'partial_update': 'assets.change_assetaccountsecret', 'partial_update': 'assets.change_accountsecret',
} }
@action(methods=['post'], detail=True, url_path='verify') @action(methods=['post'], detail=True, url_path='verify')
@ -41,9 +41,10 @@ class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet):
因为可能要导出所有账号所以单独建立了一个 viewset 因为可能要导出所有账号所以单独建立了一个 viewset
""" """
serializer_classes = { serializer_classes = {
'default': serializers.AccountSecretSerializer 'default': serializers.AccountSecretSerializer,
'histories': serializers.AccountHistorySerializer,
} }
http_method_names = ['get'] http_method_names = ['get', 'options']
# Todo: 记得打开 # Todo: 记得打开
# permission_classes = [RBACPermission, UserConfirmation.require(ConfirmType.MFA)] # permission_classes = [RBACPermission, UserConfirmation.require(ConfirmType.MFA)]
rbac_perms = { rbac_perms = {
@ -52,12 +53,11 @@ class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet):
'histories': ['assets.view_accountsecret'], 'histories': ['assets.view_accountsecret'],
} }
@action(methods=['get'], detail=True, url_path='histories', serializer_class=serializers.AccountHistorySerializer) @action(methods=['get'], detail=True, url_path='histories')
def histories(self, request, *args, **kwargs): def histories(self, request, *args, **kwargs):
account = self.get_object() account = get_object_or_404(self.get_queryset(), **kwargs)
histories = account.history.all() self.queryset = account.history.all()
serializer = serializers.AccountHistorySerializer(histories, many=True) return super().list(request, *args, **kwargs)
return Response(serializer.data)
class AccountTaskCreateAPI(CreateAPIView): class AccountTaskCreateAPI(CreateAPIView):

View File

@ -39,8 +39,11 @@ class GatherAccountsFilter:
@staticmethod @staticmethod
def windows_filter(info): def windows_filter(info):
# TODO info = info[4:-2]
result = {} result = {}
for i in info:
for username in i.split():
result[username] = {}
return result return result
def run(self, method_id_meta_mapper, info): def run(self, method_id_meta_mapper, info):

View File

@ -142,7 +142,7 @@ class IpInFilterBackend(filters.BaseFilterBackend):
if not ips: if not ips:
return queryset return queryset
ip_list = [i.strip() for i in ips.split(',')] ip_list = [i.strip() for i in ips.split(',')]
queryset = queryset.filter(ip__in=ip_list) queryset = queryset.filter(address__in=ip_list)
return queryset return queryset
def get_schema_fields(self, view): def get_schema_fields(self, view):

View File

@ -113,7 +113,7 @@ class ConnectionTokenAssetSerializer(serializers.ModelSerializer):
""" Asset """ """ Asset """
class Meta: class Meta:
model = Asset model = Asset
fields = ['id', 'name', 'ip', 'protocols', 'org_id'] fields = ['id', 'name', 'address', 'protocols', 'org_id']
class ConnectionTokenAccountSerializer(serializers.ModelSerializer): class ConnectionTokenAccountSerializer(serializers.ModelSerializer):

View File

@ -31,7 +31,7 @@ class CeleryTaskSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = CeleryTask model = CeleryTask
fields = [ fields = [
'id', 'name', 'meta', 'publish_count', 'state', 'success_count', 'last_published_time', 'id', 'name', 'meta', 'state', 'last_published_time',
] ]