mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-04 17:01:09 +00:00
Merge: v3 to dev (#9160)
* fix: 修改 ConnectionTokenSecretSerializer * perf: connect token secret (#9155) Co-authored-by: feng <1304903146@qq.com> Co-authored-by: Jiangjie.Bai <bugatti_it@163.com> * feat: 作业迁移至个人级别 * perf: asset enabled (#9157) Co-authored-by: feng <1304903146@qq.com> * perf: 修改ConnectionTokenSecret Gateway数据结构; 修改Domain Gateway Model方法 * perf: ConnectionTokenSecret 返回 domain 信息 * refactor: 移动 Gateway Model 到 asset 目录下 * refactor: 移动 Gateway Model 单独到 gateway 文件中 * perf: 修改 GatewaySerializer 目录 * perf: 修改 GatewaySerializer 目录 Co-authored-by: fit2bot <68588906+fit2bot@users.noreply.github.com> Co-authored-by: feng <1304903146@qq.com> Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
This commit is contained in:
@@ -1,13 +1,16 @@
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from rest_framework import serializers
|
||||
|
||||
from acls.models import CommandGroup
|
||||
from assets.models import Asset, Account, Platform
|
||||
from common.drf.fields import ObjectRelatedField
|
||||
from acls.models import CommandGroup, CommandFilterACL
|
||||
from assets.models import Asset, Account, Platform, Gateway, Domain
|
||||
from assets.serializers import PlatformSerializer, AssetProtocolsSerializer
|
||||
from authentication.models import ConnectionToken
|
||||
from orgs.mixins.serializers import OrgResourceModelSerializerMixin
|
||||
from perms.serializers.permission import ActionChoicesField
|
||||
from users.models import User
|
||||
from perms.serializers.permission import ActionChoicesField
|
||||
from orgs.mixins.serializers import OrgResourceModelSerializerMixin
|
||||
|
||||
from ..models import ConnectionToken
|
||||
|
||||
|
||||
__all__ = [
|
||||
'ConnectionTokenSecretSerializer',
|
||||
@@ -53,21 +56,33 @@ class _ConnectionTokenAccountSerializer(serializers.ModelSerializer):
|
||||
class _ConnectionTokenGatewaySerializer(serializers.ModelSerializer):
|
||||
""" Gateway """
|
||||
|
||||
account = ObjectRelatedField(
|
||||
required=False, source='select_account', queryset=Account.objects,
|
||||
attrs=('id', 'name', 'username', 'secret', 'secret_type')
|
||||
)
|
||||
protocols = AssetProtocolsSerializer(many=True, required=False, label=_('Protocols'))
|
||||
|
||||
class Meta:
|
||||
model = Asset
|
||||
model = Gateway
|
||||
fields = [
|
||||
'id', 'address', 'port',
|
||||
# 'username', 'password', 'private_key'
|
||||
'id', 'name', 'address', 'protocols', 'account'
|
||||
]
|
||||
|
||||
|
||||
class _ConnectionTokenACLCmdGroupSerializer(serializers.ModelSerializer):
|
||||
""" ACL command group"""
|
||||
class _ConnectionTokenCommandFilterACLSerializer(serializers.ModelSerializer):
|
||||
command_groups = ObjectRelatedField(
|
||||
many=True, required=False, queryset=CommandGroup.objects,
|
||||
attrs=('id', 'name', 'type', 'content', 'ignore_case', 'pattern'),
|
||||
label=_('Command group')
|
||||
)
|
||||
reviewers = ObjectRelatedField(
|
||||
many=True, queryset=User.objects, label=_("Reviewers"), required=False
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = CommandGroup
|
||||
model = CommandFilterACL
|
||||
fields = [
|
||||
'id', 'type', 'content', 'ignore_case', 'pattern'
|
||||
'id', 'name', 'command_groups', 'action', 'reviewers', 'priority', 'is_active'
|
||||
]
|
||||
|
||||
|
||||
@@ -87,7 +102,8 @@ class ConnectionTokenSecretSerializer(OrgResourceModelSerializerMixin):
|
||||
account = _ConnectionTokenAccountSerializer(read_only=True, source='account_object')
|
||||
gateway = _ConnectionTokenGatewaySerializer(read_only=True)
|
||||
platform = _ConnectionTokenPlatformSerializer(read_only=True)
|
||||
acl_command_groups = _ConnectionTokenACLCmdGroupSerializer(read_only=True, many=True)
|
||||
domain = ObjectRelatedField(queryset=Domain.objects, required=False, label=_('Domain'))
|
||||
command_filter_acls = _ConnectionTokenCommandFilterACLSerializer(read_only=True, many=True)
|
||||
actions = ActionChoicesField()
|
||||
expire_at = serializers.IntegerField()
|
||||
expire_now = serializers.BooleanField(label=_('Expired now'), write_only=True, default=True)
|
||||
@@ -97,8 +113,8 @@ class ConnectionTokenSecretSerializer(OrgResourceModelSerializerMixin):
|
||||
model = ConnectionToken
|
||||
fields = [
|
||||
'id', 'value', 'user', 'asset', 'account',
|
||||
'platform', 'acl_command_groups', 'protocol',
|
||||
'gateway', 'actions', 'expire_at', 'expire_now',
|
||||
'platform', 'command_filter_acls', 'protocol',
|
||||
'domain', 'gateway', 'actions', 'expire_at', 'expire_now',
|
||||
'connect_method'
|
||||
]
|
||||
extra_kwargs = {
|
||||
|
@@ -1,9 +1,10 @@
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from rest_framework import serializers
|
||||
|
||||
from authentication.models import ConnectionToken
|
||||
from orgs.mixins.serializers import OrgResourceModelSerializerMixin
|
||||
|
||||
from ..models import ConnectionToken
|
||||
|
||||
__all__ = [
|
||||
'ConnectionTokenSerializer', 'SuperConnectionTokenSerializer',
|
||||
]
|
||||
|
Reference in New Issue
Block a user