Skip to content

Commit 8d5c3e6

Browse files
committed
feat: refresh cache for permission list on knowledge save
1 parent 2144993 commit 8d5c3e6

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

apps/knowledge/serializers/knowledge.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import uuid_utils.compat as uuid
1212
from celery_once import AlreadyQueued
1313
from django.core import validators
14+
from django.core.cache import cache
1415
from django.db import transaction, models
1516
from django.db.models import QuerySet
1617
from django.db.models.functions import Reverse, Substr
@@ -20,6 +21,7 @@
2021

2122
from application.models import ApplicationKnowledgeMapping
2223
from common.config.embedding_config import VectorStore
24+
from common.constants.cache_version import Cache_Version
2325
from common.constants.permission_constants import ResourceAuthType, ResourcePermissionGroup
2426
from common.database_model_manage.database_model_manage import DatabaseModelManage
2527
from common.db.search import native_search, get_dynamics_model, native_page_search
@@ -534,6 +536,10 @@ def save_base(self, instance, with_valid=True):
534536
user_id=self.data.get('user_id'),
535537
auth_type=ResourceAuthType.RESOURCE_PERMISSION_GROUP
536538
).save()
539+
# 刷新缓存
540+
version = Cache_Version.PERMISSION_LIST.get_version()
541+
key = Cache_Version.PERMISSION_LIST.get_key(user_id=self.data.get('user_id'))
542+
cache.delete(key, version=version)
537543

538544
return {
539545
**KnowledgeModelSerializer(knowledge).data,
@@ -581,6 +587,11 @@ def save_web(self, instance: Dict, with_valid=True):
581587
user_id=self.data.get('user_id'),
582588
auth_type=ResourceAuthType.RESOURCE_PERMISSION_GROUP
583589
).save()
590+
# 刷新缓存
591+
version = Cache_Version.PERMISSION_LIST.get_version()
592+
key = Cache_Version.PERMISSION_LIST.get_key(user_id=self.data.get('user_id'))
593+
cache.delete(key, version=version)
594+
584595
sync_web_knowledge.delay(str(knowledge_id), instance.get('source_url'), instance.get('selector'))
585596
return {**KnowledgeModelSerializer(knowledge).data, 'document_list': []}
586597

0 commit comments

Comments
 (0)