mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-21 19:38:07 +00:00
[Feature] 添加功能:数据库应用 (#3551)
* [Update] 添加数据库应用Model * [Update] 添加数据库应用ViewSet * [Update] 添加数据库应用HTML * [Update] 更新数据库应用迁移文件 * [Update] 添加数据库应用授权Model * [Update] 添加数据库应用授权ViewSet(待续) * [Update] 添加数据库应用授权ViewSet(完结) * [Update] 添加数据库应用授权View(待续) * [Update] 添加数据库应用授权View(待续2) * [Update] 修改远程应用授权View(小问题) * [Update] 添加数据库应用授权View(待续3) * [Update] 添加数据库应用授权View(完结) * [Update] 添加数据库应用授权相关API * [Update] 添加数据库应用View(用户页面) * [Update] 修改数据库应用授权Model/View/API(系统用户) * [Update] 修改系统用户Model/View(添加mysql协议) * [Update] 修改用户页面(我的应用) * [Update] 添加迁移文件 * [Update] 添加迁移文件2 * [Update] 续添加迁移文件2(Model更改) * [Update] 修改系统用户序列类(mysql协议自动生成密码问题) * [Update] 修改数据库应用/资产等授权序列类 * [Update] 修改命令列表/会话详情命令溢出 * [Update] 修改授权详情中添加系统用户的过滤 * [Update] 修改列表动作的宽度
This commit is contained in:
94
apps/perms/serializers/database_app_permission_relation.py
Normal file
94
apps/perms/serializers/database_app_permission_relation.py
Normal file
@@ -0,0 +1,94 @@
|
||||
# coding: utf-8
|
||||
#
|
||||
from rest_framework import serializers
|
||||
|
||||
from applications.models import DatabaseApp
|
||||
from common.mixins import BulkSerializerMixin
|
||||
from common.serializers import AdaptedBulkListSerializer
|
||||
|
||||
from .. import models
|
||||
|
||||
__all__ = [
|
||||
'DatabaseAppPermissionUserRelationSerializer',
|
||||
'DatabaseAppPermissionUserGroupRelationSerializer',
|
||||
'DatabaseAppPermissionAllUserSerializer',
|
||||
'DatabaseAppPermissionDatabaseAppRelationSerializer',
|
||||
'DatabaseAppPermissionAllDatabaseAppSerializer',
|
||||
'DatabaseAppPermissionSystemUserRelationSerializer',
|
||||
]
|
||||
|
||||
|
||||
class RelationMixin(BulkSerializerMixin, serializers.Serializer):
|
||||
databaseapppermission_display = serializers.ReadOnlyField()
|
||||
|
||||
def get_field_names(self, declared_fields, info):
|
||||
fields = super().get_field_names(declared_fields, info)
|
||||
fields.extend(['databaseapppermission', "databaseapppermission_display"])
|
||||
return fields
|
||||
|
||||
class Meta:
|
||||
list_serializer_class = AdaptedBulkListSerializer
|
||||
|
||||
|
||||
class DatabaseAppPermissionUserRelationSerializer(RelationMixin, serializers.ModelSerializer):
|
||||
user_display = serializers.ReadOnlyField()
|
||||
|
||||
class Meta(RelationMixin.Meta):
|
||||
model = models.DatabaseAppPermission.users.through
|
||||
fields = [
|
||||
'id', 'user', 'user_display',
|
||||
]
|
||||
|
||||
|
||||
class DatabaseAppPermissionUserGroupRelationSerializer(RelationMixin, serializers.ModelSerializer):
|
||||
usergroup_display = serializers.ReadOnlyField()
|
||||
|
||||
class Meta(RelationMixin.Meta):
|
||||
model = models.DatabaseAppPermission.user_groups.through
|
||||
fields = [
|
||||
'id', 'usergroup', "usergroup_display",
|
||||
]
|
||||
|
||||
|
||||
class DatabaseAppPermissionAllUserSerializer(serializers.Serializer):
|
||||
user = serializers.UUIDField(read_only=True, source='id')
|
||||
user_display = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
only_fields = ['id', 'username', 'name']
|
||||
|
||||
@staticmethod
|
||||
def get_user_display(obj):
|
||||
return str(obj)
|
||||
|
||||
|
||||
class DatabaseAppPermissionDatabaseAppRelationSerializer(RelationMixin, serializers.ModelSerializer):
|
||||
databaseapp_display = serializers.ReadOnlyField()
|
||||
|
||||
class Meta(RelationMixin.Meta):
|
||||
model = models.DatabaseAppPermission.database_apps.through
|
||||
fields = [
|
||||
'id', "databaseapp", "databaseapp_display",
|
||||
]
|
||||
|
||||
|
||||
class DatabaseAppPermissionAllDatabaseAppSerializer(serializers.Serializer):
|
||||
databaseapp = serializers.UUIDField(read_only=True, source='id')
|
||||
databaseapp_display = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
only_fields = ['id', 'name']
|
||||
|
||||
@staticmethod
|
||||
def get_databaseapp_display(obj):
|
||||
return str(obj)
|
||||
|
||||
|
||||
class DatabaseAppPermissionSystemUserRelationSerializer(RelationMixin, serializers.ModelSerializer):
|
||||
systemuser_display = serializers.ReadOnlyField()
|
||||
|
||||
class Meta(RelationMixin.Meta):
|
||||
model = models.DatabaseAppPermission.system_users.through
|
||||
fields = [
|
||||
'id', 'systemuser', 'systemuser_display'
|
||||
]
|
Reference in New Issue
Block a user