|
| 1 | +# coding=utf-8 |
| 2 | +""" |
| 3 | + @project: MaxKB |
| 4 | + @Author:虎虎 |
| 5 | + @file: workspace_user_resource_permission.py |
| 6 | + @date:2025/4/28 17:17 |
| 7 | + @desc: |
| 8 | +""" |
| 9 | +import os |
| 10 | + |
| 11 | +from django.db import models |
| 12 | +from django.db.models import QuerySet |
| 13 | +from django.utils.translation import gettext_lazy as _ |
| 14 | +from rest_framework import serializers |
| 15 | + |
| 16 | +from common.db.search import native_page_search, get_dynamics_model |
| 17 | +from common.utils.common import get_file_content |
| 18 | +from maxkb.conf import PROJECT_DIR |
| 19 | + |
| 20 | + |
| 21 | +class ResourceMappingSerializer(serializers.Serializer): |
| 22 | + resource = serializers.CharField(required=True, label=_('resource')) |
| 23 | + resource_id = serializers.UUIDField(required=True, label=_('resource Id')) |
| 24 | + resource_name = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_('resource')) |
| 25 | + |
| 26 | + def get_query_set(self): |
| 27 | + queryset = QuerySet(model=get_dynamics_model({ |
| 28 | + 'name': models.CharField(), |
| 29 | + 'target_id': models.CharField(), |
| 30 | + "target_type": models.CharField() |
| 31 | + })) |
| 32 | + |
| 33 | + queryset = queryset.filter(target_id=self.data.get('resource_id'), |
| 34 | + target_type=self.data.get('resource')) |
| 35 | + |
| 36 | + if self.data.get('resource_name'): |
| 37 | + queryset = queryset.filter(name__icontains=self.data.get('resource_name')) |
| 38 | + |
| 39 | + return queryset |
| 40 | + |
| 41 | + def page(self, current_page, page_size): |
| 42 | + return native_page_search(current_page, page_size, self.get_query_set(), get_file_content( |
| 43 | + os.path.join(PROJECT_DIR, "apps", "system_manage", |
| 44 | + 'sql', 'list_resource_mapping.sql')), with_table_name=False) |
0 commit comments