mirror of https://github.com/jumpserver/jumpserver
perf(application): 修改获取远程应用连接参数的API(2)
parent
76ca6d587d
commit
a3507975fb
|
@ -3,8 +3,9 @@
|
|||
|
||||
from orgs.mixins.api import OrgBulkModelViewSet
|
||||
from orgs.mixins import generics
|
||||
from common.exceptions import JMSException
|
||||
from ..hands import IsOrgAdmin, IsAppUser
|
||||
from ..models import RemoteApp, Application
|
||||
from .. import models
|
||||
from ..serializers import RemoteAppSerializer, RemoteAppConnectionInfoSerializer
|
||||
|
||||
|
||||
|
@ -14,7 +15,7 @@ __all__ = [
|
|||
|
||||
|
||||
class RemoteAppViewSet(OrgBulkModelViewSet):
|
||||
model = RemoteApp
|
||||
model = models.RemoteApp
|
||||
filter_fields = ('name', 'type', 'comment')
|
||||
search_fields = filter_fields
|
||||
permission_classes = (IsOrgAdmin,)
|
||||
|
@ -22,6 +23,12 @@ class RemoteAppViewSet(OrgBulkModelViewSet):
|
|||
|
||||
|
||||
class RemoteAppConnectionInfoApi(generics.RetrieveAPIView):
|
||||
model = Application
|
||||
model = models.Application
|
||||
permission_classes = (IsAppUser, )
|
||||
serializer_class = RemoteAppConnectionInfoSerializer
|
||||
|
||||
def get_object(self):
|
||||
obj = super().get_object()
|
||||
if not models.Category.is_remote_app(obj.category):
|
||||
raise JMSException('The request instance is not of category `remote_app`')
|
||||
return obj
|
||||
|
|
|
@ -112,6 +112,10 @@ class Category(ChoiceSet):
|
|||
mapper = cls.get_category_serializer_mapper()
|
||||
return mapper.get(cg, None)
|
||||
|
||||
@classmethod
|
||||
def is_remote_app(cls, cg):
|
||||
return cg == cls.remote_app
|
||||
|
||||
|
||||
class Application(CommonModelMixin, OrgModelMixin):
|
||||
name = models.CharField(max_length=128, verbose_name=_('Name'))
|
||||
|
|
|
@ -106,11 +106,12 @@ class RemoteAppSerializer(BulkOrgResourceModelSerializer):
|
|||
|
||||
class RemoteAppConnectionInfoSerializer(serializers.ModelSerializer):
|
||||
parameter_remote_app = serializers.SerializerMethodField()
|
||||
asset = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Application
|
||||
fields = [
|
||||
'id', 'name', 'parameter_remote_app',
|
||||
'id', 'name', 'asset', 'parameter_remote_app',
|
||||
]
|
||||
read_only_fields = ['parameter_remote_app']
|
||||
|
||||
|
@ -144,3 +145,7 @@ class RemoteAppConnectionInfoSerializer(serializers.ModelSerializer):
|
|||
'parameters': parameters,
|
||||
}
|
||||
return parameter
|
||||
|
||||
@staticmethod
|
||||
def get_asset(obj):
|
||||
return obj.attrs.get('asset')
|
||||
|
|
Loading…
Reference in New Issue