|
20 | 20 |
|
21 | 21 | from application.models import ApplicationKnowledgeMapping |
22 | 22 | from common.config.embedding_config import VectorStore |
| 23 | +from common.constants.permission_constants import ResourceAuthType, ResourcePermissionGroup |
23 | 24 | from common.database_model_manage.database_model_manage import DatabaseModelManage |
24 | 25 | from common.db.search import native_search, get_dynamics_model, native_page_search |
25 | 26 | from common.db.sql_execute import select_list |
|
38 | 39 | from knowledge.task.sync import sync_web_knowledge, sync_replace_web_knowledge |
39 | 40 | from maxkb.conf import PROJECT_DIR |
40 | 41 | from models_provider.models import Model |
| 42 | +from system_manage.models import WorkspaceUserResourcePermission, AuthTargetType |
41 | 43 | from users.serializers.user import is_workspace_manage |
42 | 44 |
|
43 | 45 |
|
@@ -520,6 +522,16 @@ def save_base(self, instance, with_valid=True): |
520 | 522 | problem_paragraph_mapping_list |
521 | 523 | ) if len(problem_paragraph_mapping_list) > 0 else None |
522 | 524 |
|
| 525 | + # 自动授权给创建者 |
| 526 | + WorkspaceUserResourcePermission( |
| 527 | + target=knowledge_id, |
| 528 | + auth_target_type=AuthTargetType.KNOWLEDGE, |
| 529 | + permission_list=[ResourcePermissionGroup.VIEW, ResourcePermissionGroup.MANAGE], |
| 530 | + workspace_id=self.data.get('workspace_id'), |
| 531 | + user_id=self.data.get('user_id'), |
| 532 | + auth_type=ResourceAuthType.RESOURCE_PERMISSION_GROUP |
| 533 | + ).save() |
| 534 | + |
523 | 535 | return { |
524 | 536 | **KnowledgeModelSerializer(knowledge).data, |
525 | 537 | 'user_id': self.data.get('user_id'), |
@@ -557,6 +569,15 @@ def save_web(self, instance: Dict, with_valid=True): |
557 | 569 | }, |
558 | 570 | ) |
559 | 571 | knowledge.save() |
| 572 | + # 自动授权给创建者 |
| 573 | + WorkspaceUserResourcePermission( |
| 574 | + target=knowledge_id, |
| 575 | + auth_target_type=AuthTargetType.KNOWLEDGE, |
| 576 | + permission_list=[ResourcePermissionGroup.VIEW, ResourcePermissionGroup.MANAGE], |
| 577 | + workspace_id=self.data.get('workspace_id'), |
| 578 | + user_id=self.data.get('user_id'), |
| 579 | + auth_type=ResourceAuthType.RESOURCE_PERMISSION_GROUP |
| 580 | + ).save() |
560 | 581 | sync_web_knowledge.delay(str(knowledge_id), instance.get('source_url'), instance.get('selector')) |
561 | 582 | return {**KnowledgeModelSerializer(knowledge).data, 'document_list': []} |
562 | 583 |
|
|
0 commit comments