mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
refactor: enhance deletion process by removing associated permissions for knowledge, model, and tool
This commit is contained in:
parent
58dde6629b
commit
9541b27d76
|
|
@ -384,6 +384,7 @@ class KnowledgeSerializer(serializers.Serializer):
|
|||
QuerySet(ProblemParagraphMapping).filter(knowledge=knowledge).delete()
|
||||
QuerySet(Paragraph).filter(knowledge=knowledge).delete()
|
||||
QuerySet(Problem).filter(knowledge=knowledge).delete()
|
||||
QuerySet(WorkspaceUserResourcePermission).filter(target=knowledge.id).delete()
|
||||
knowledge.delete()
|
||||
delete_embedding_by_knowledge(self.data.get('knowledge_id'))
|
||||
return True
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ from typing import Dict
|
|||
|
||||
import uuid_utils.compat as uuid
|
||||
from django.core.cache import cache
|
||||
from django.db import transaction
|
||||
from django.db.models import QuerySet
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from rest_framework import serializers
|
||||
|
|
@ -160,11 +161,15 @@ class ModelSerializer(serializers.Serializer):
|
|||
QuerySet(Model).filter(id=self.data.get('id')).update(status=Status.PAUSE_DOWNLOAD)
|
||||
return True
|
||||
|
||||
@transaction.atomic
|
||||
def delete(self, with_valid=True):
|
||||
if with_valid:
|
||||
super().is_valid(raise_exception=True)
|
||||
model_id = self.data.get('id')
|
||||
model = Model.objects.filter(id=model_id).first()
|
||||
if model is None:
|
||||
return True
|
||||
QuerySet(WorkspaceUserResourcePermission).filter(target=model_id).delete()
|
||||
# TODO : 这里可以添加模型删除的逻辑,需要注意删除模型时的权限和关联关系
|
||||
# if model.model_type == 'LLM':
|
||||
# application_count = Application.objects.filter(model_id=model_id).count()
|
||||
|
|
|
|||
|
|
@ -336,6 +336,7 @@ class ToolSerializer(serializers.Serializer):
|
|||
tool = QuerySet(Tool).filter(id=self.data.get('id')).first()
|
||||
if tool.template_id is None and tool.icon != '/ui/favicon.ico':
|
||||
QuerySet(File).filter(id=tool.icon.split('/')[-1]).delete()
|
||||
QuerySet(WorkspaceUserResourcePermission).filter(target=tool.id).delete()
|
||||
QuerySet(Tool).filter(id=self.data.get('id')).delete()
|
||||
|
||||
def one(self):
|
||||
|
|
|
|||
Loading…
Reference in New Issue