mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
50 lines
1.5 KiB
5 years ago
|
# coding: utf-8
|
||
|
#
|
||
|
from rest_framework import serializers
|
||
|
|
||
|
from common.serializers import AdaptedBulkListSerializer
|
||
|
from ..models import RemoteAppPermission
|
||
|
|
||
|
|
||
|
__all__ = [
|
||
|
'RemoteAppPermissionRemoteAppRelationSerializer',
|
||
|
'RemoteAppPermissionAllRemoteAppSerializer',
|
||
|
'RemoteAppPermissionUserRelationSerializer',
|
||
|
]
|
||
|
|
||
|
|
||
|
class RemoteAppPermissionRemoteAppRelationSerializer(serializers.ModelSerializer):
|
||
|
remoteapp_display = serializers.ReadOnlyField()
|
||
|
remoteapppermission_display = serializers.ReadOnlyField()
|
||
|
|
||
|
class Meta:
|
||
|
model = RemoteAppPermission.remote_apps.through
|
||
|
list_serializer_class = AdaptedBulkListSerializer
|
||
|
fields = [
|
||
|
'id', 'remoteapp', 'remoteapp_display', 'remoteapppermission', 'remoteapppermission_display'
|
||
|
]
|
||
|
|
||
|
|
||
|
class RemoteAppPermissionAllRemoteAppSerializer(serializers.Serializer):
|
||
|
remoteapp = serializers.UUIDField(read_only=True, source='id')
|
||
|
remoteapp_display = serializers.SerializerMethodField()
|
||
|
|
||
|
class Meta:
|
||
|
only_fields = ['id', 'name']
|
||
|
|
||
|
@staticmethod
|
||
|
def get_remoteapp_display(obj):
|
||
|
return str(obj)
|
||
|
|
||
|
|
||
|
class RemoteAppPermissionUserRelationSerializer(serializers.ModelSerializer):
|
||
|
user_display = serializers.ReadOnlyField()
|
||
|
remoteapppermission_display = serializers.ReadOnlyField()
|
||
|
|
||
|
class Meta:
|
||
|
model = RemoteAppPermission.users.through
|
||
|
list_serializer_class = AdaptedBulkListSerializer
|
||
|
fields = [
|
||
|
'id', 'user', 'user_display', 'remoteapppermission', 'remoteapppermission_display'
|
||
|
]
|