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='*')
)
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)
return queryset

View File

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

View File

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

View File

@ -142,7 +142,7 @@ class IpInFilterBackend(filters.BaseFilterBackend):
if not ips:
return queryset
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
def get_schema_fields(self, view):

View File

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

View File

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