获取各类型资源按工作空间的映射
(workspace_ids)
| 812 | |
| 813 | |
| 814 | def _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 | |
| 865 | def _create_resource_permission_instances(workspace_id, resource_maps, user_id, permission, auth_type): |
no test coverage detected