226 lines
6.7 KiB
Python
226 lines
6.7 KiB
Python
# coding=utf-8
|
||
"""
|
||
@project: MaxKB
|
||
@Author:虎虎
|
||
@file: workspace_user_resource_permission.py
|
||
@date:2025/4/28 18:13
|
||
@desc:
|
||
"""
|
||
from drf_spectacular.types import OpenApiTypes
|
||
from drf_spectacular.utils import OpenApiParameter
|
||
from rest_framework import serializers
|
||
from django.utils.translation import gettext_lazy as _
|
||
|
||
from common.mixins.api_mixin import APIMixin
|
||
from common.result import ResultSerializer, ResultPageSerializer
|
||
from system_manage.serializers.user_resource_permission import UserResourcePermissionResponse, \
|
||
UpdateUserResourcePermissionRequest, ResourceUserPermissionEditRequest
|
||
|
||
|
||
class APIUserResourcePermissionResponse(ResultSerializer):
|
||
def get_data(self):
|
||
return UserResourcePermissionResponse(many=True)
|
||
|
||
|
||
class UserResourcePermissionAPI(APIMixin):
|
||
@staticmethod
|
||
def get_parameters():
|
||
return [
|
||
OpenApiParameter(
|
||
name="workspace_id",
|
||
description="工作空间id",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True,
|
||
),
|
||
OpenApiParameter(
|
||
name="user_id",
|
||
description="用户id",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True,
|
||
),
|
||
]
|
||
|
||
@staticmethod
|
||
def get_response():
|
||
return APIUserResourcePermissionResponse
|
||
|
||
|
||
class EditUserResourcePermissionAPI(APIMixin):
|
||
@staticmethod
|
||
def get_request():
|
||
return UpdateUserResourcePermissionRequest()
|
||
|
||
|
||
class ResourceUserPermissionResponse(serializers.Serializer):
|
||
id = serializers.CharField(required=True, label=_('user id'))
|
||
nick_name = serializers.CharField(required=True, allow_null=True, allow_blank=True, label=_('nick_name'))
|
||
username = serializers.CharField(required=True, allow_null=True, allow_blank=True, label=_('username'))
|
||
permission = serializers.CharField(required=True, label=_('permission'))
|
||
|
||
|
||
class APIResourceUserPermissionResponse(ResultSerializer):
|
||
def get_data(self):
|
||
return ResourceUserPermissionResponse(many=True)
|
||
|
||
|
||
class ResourceUserPermissionAPI(APIMixin):
|
||
@staticmethod
|
||
def get_parameters():
|
||
return [
|
||
OpenApiParameter(
|
||
name="workspace_id",
|
||
description="工作空间id",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True
|
||
),
|
||
OpenApiParameter(
|
||
name="target",
|
||
description="资源id",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True
|
||
),
|
||
OpenApiParameter(
|
||
name="resource",
|
||
description="资源类型",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True
|
||
),
|
||
OpenApiParameter(
|
||
name="username",
|
||
description="用户名",
|
||
type=OpenApiTypes.STR,
|
||
location='query',
|
||
required=False
|
||
),
|
||
OpenApiParameter(
|
||
name="nick_name",
|
||
description="姓名",
|
||
type=OpenApiTypes.STR,
|
||
location='query',
|
||
required=False
|
||
),
|
||
OpenApiParameter(
|
||
name="permission",
|
||
description="权限",
|
||
type=OpenApiTypes.STR,
|
||
location='query',
|
||
required=False
|
||
),
|
||
]
|
||
|
||
@staticmethod
|
||
def get_response():
|
||
return APIResourceUserPermissionResponse
|
||
|
||
|
||
class APIResourceUserPermissionPageResponse(ResultPageSerializer):
|
||
def get_data(self):
|
||
return ResourceUserPermissionResponse(many=True)
|
||
|
||
|
||
class ResourceUserPermissionPageAPI(APIMixin):
|
||
@staticmethod
|
||
def get_parameters():
|
||
return [
|
||
OpenApiParameter(
|
||
name="workspace_id",
|
||
description="工作空间id",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True
|
||
),
|
||
OpenApiParameter(
|
||
name="target",
|
||
description="资源id",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True
|
||
),
|
||
OpenApiParameter(
|
||
name="resource",
|
||
description="资源类型",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True
|
||
),
|
||
OpenApiParameter(
|
||
name="current_page",
|
||
description=_("Current page"),
|
||
type=OpenApiTypes.INT,
|
||
location='path',
|
||
required=True,
|
||
),
|
||
OpenApiParameter(
|
||
name="page_size",
|
||
description=_("Page size"),
|
||
type=OpenApiTypes.INT,
|
||
location='path',
|
||
required=True,
|
||
),
|
||
OpenApiParameter(
|
||
name="username",
|
||
description="用户名",
|
||
type=OpenApiTypes.STR,
|
||
location='query',
|
||
required=False
|
||
),
|
||
OpenApiParameter(
|
||
name="nick_name",
|
||
description="姓名",
|
||
type=OpenApiTypes.STR,
|
||
location='query',
|
||
required=False
|
||
),
|
||
OpenApiParameter(
|
||
name="permission",
|
||
description="权限",
|
||
type=OpenApiTypes.STR,
|
||
location='query',
|
||
required=False
|
||
),
|
||
]
|
||
|
||
@staticmethod
|
||
def get_response():
|
||
return APIResourceUserPermissionPageResponse
|
||
|
||
|
||
|
||
class ResourceUserPermissionEditAPI(APIMixin):
|
||
@staticmethod
|
||
def get_parameters():
|
||
return [
|
||
OpenApiParameter(
|
||
name="workspace_id",
|
||
description="工作空间id",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True
|
||
),
|
||
OpenApiParameter(
|
||
name="target",
|
||
description="资源id",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True
|
||
),
|
||
OpenApiParameter(
|
||
name="resource",
|
||
description="资源类型",
|
||
type=OpenApiTypes.STR,
|
||
location='path',
|
||
required=True
|
||
),
|
||
]
|
||
@staticmethod
|
||
def get_request():
|
||
return ResourceUserPermissionEditRequest(required=True, many=True, label=_('users_permission'))
|
||
|
||
@staticmethod
|
||
def get_response():
|
||
return APIResourceUserPermissionResponse() |