MCPcopy
hub / github.com/1Panel-dev/MaxKB / _get_resource_maps

Function _get_resource_maps

apps/users/serializers/user.py:814–862  ·  view source on GitHub ↗

获取各类型资源按工作空间的映射

(workspace_ids)

Source from the content-addressed store, hash-verified

812
813
814def _get_resource_maps(workspace_ids):
815 """
816 获取各类型资源按工作空间的映射
817 """
818 from application.models import Application, ApplicationFolder
819 from knowledge.models import Knowledge, KnowledgeFolder
820 from tools.models import Tool, ToolFolder
821 from models_provider.models import Model
822 from collections import defaultdict
823
824 resource_maps = {
825 'apps': defaultdict(list),
826 'app_folders': defaultdict(list),
827 'knowledge': defaultdict(list),
828 'knowledge_folders': defaultdict(list),
829 'tools': defaultdict(list),
830 'tool_folders': defaultdict(list),
831 'models': defaultdict(list)
832 }
833
834 # 查询应用资源
835 for ws, rid in Application.objects.filter(workspace_id__in=workspace_ids).values_list('workspace_id', 'id'):
836 resource_maps['apps'][ws].append(rid)
837
838 for ws, fid in ApplicationFolder.objects.filter(workspace_id__in=workspace_ids).exclude(
839 id__in=workspace_ids).values_list('workspace_id', 'id'):
840 resource_maps['app_folders'][ws].append(fid)
841
842 # 查询知识库资源
843 for ws, kid in Knowledge.objects.filter(workspace_id__in=workspace_ids).values_list('workspace_id', 'id'):
844 resource_maps['knowledge'][ws].append(kid)
845
846 for ws, kfid in KnowledgeFolder.objects.filter(workspace_id__in=workspace_ids).exclude(
847 id__in=workspace_ids).values_list('workspace_id', 'id'):
848 resource_maps['knowledge_folders'][ws].append(kfid)
849
850 # 查询工具资源
851 for ws, tid in Tool.objects.filter(workspace_id__in=workspace_ids).values_list('workspace_id', 'id'):
852 resource_maps['tools'][ws].append(tid)
853
854 for ws, tfid in ToolFolder.objects.filter(workspace_id__in=workspace_ids).exclude(
855 id__in=workspace_ids).values_list('workspace_id', 'id'):
856 resource_maps['tool_folders'][ws].append(tfid)
857
858 # 查询模型资源
859 for ws, mid in Model.objects.filter(workspace_id__in=workspace_ids).values_list('workspace_id', 'id'):
860 resource_maps['models'][ws].append(mid)
861
862 return resource_maps
863
864
865def _create_resource_permission_instances(workspace_id, resource_maps, user_id, permission, auth_type):

Callers 1

Calls 1

appendMethod · 0.45

Tested by

no test coverage detected