From 6cb3ae74d9474053f98a3318f4a30184096775a8 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Thu, 5 Jun 2025 10:12:59 +0800 Subject: [PATCH] feat: update permission checks to use workspace knowledge permissions for document and knowledge operations --- apps/knowledge/views/document.py | 60 +++++++++++++++---------------- apps/knowledge/views/knowledge.py | 20 +++++------ apps/knowledge/views/paragraph.py | 26 +++++++------- apps/knowledge/views/problem.py | 16 ++++----- apps/tools/views/tool.py | 5 ++- 5 files changed, 65 insertions(+), 62 deletions(-) diff --git a/apps/knowledge/views/document.py b/apps/knowledge/views/document.py index 524a9d0a..27525075 100644 --- a/apps/knowledge/views/document.py +++ b/apps/knowledge/views/document.py @@ -29,7 +29,7 @@ class DocumentView(APIView): responses=DocumentCreateAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission()) def post(self, request: Request, workspace_id: str, knowledge_id: str): return result.success( DocumentSerializers.Create( @@ -45,7 +45,7 @@ class DocumentView(APIView): responses=DocumentTreeReadAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(DocumentSerializers.Query( data={ @@ -69,7 +69,7 @@ class DocumentView(APIView): responses=DocumentReadAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): operate = DocumentSerializers.Operate(data={ 'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id @@ -86,7 +86,7 @@ class DocumentView(APIView): responses=DocumentEditAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return result.success(DocumentSerializers.Operate(data={ 'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id @@ -100,7 +100,7 @@ class DocumentView(APIView): responses=DocumentDeleteAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_DELETE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_DELETE.get_workspace_knowledge_permission()) def delete(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): operate = DocumentSerializers.Operate(data={ 'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id @@ -123,8 +123,8 @@ class DocumentView(APIView): tags=[_('Knowledge Base/Documentation')] # type: ignore ) @has_permissions( - PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_permission(), - PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(), ) def post(self, request: Request, workspace_id: str, knowledge_id: str): split_data = {'file': request.FILES.getlist('file')} @@ -170,7 +170,7 @@ class DocumentView(APIView): responses=BatchEditHitHandlingAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(DocumentSerializers.Batch( data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id} @@ -189,7 +189,7 @@ class DocumentView(APIView): responses=SyncWebAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_SYNC.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_SYNC.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return result.success(DocumentSerializers.Sync( data={'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id} @@ -208,7 +208,7 @@ class DocumentView(APIView): responses=RefreshAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_VECTOR.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_VECTOR.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return result.success(DocumentSerializers.Operate( data={'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id} @@ -226,7 +226,7 @@ class DocumentView(APIView): responses=CancelTaskAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return result.success(DocumentSerializers.Operate( data={'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id} @@ -244,7 +244,7 @@ class DocumentView(APIView): responses=BatchCancelTaskAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(DocumentSerializers.Batch(data={ 'knowledge_id': knowledge_id, 'workspace_id': workspace_id} @@ -264,8 +264,8 @@ class DocumentView(APIView): tags=[_('Knowledge Base/Documentation')] # type: ignore ) @has_permissions( - PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_permission(), - PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(), ) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(DocumentSerializers.Batch( @@ -286,8 +286,8 @@ class DocumentView(APIView): tags=[_('Knowledge Base/Documentation')] # type: ignore ) @has_permissions( - PermissionConstants.KNOWLEDGE_DOCUMENT_SYNC.get_workspace_permission(), - PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_SYNC.get_workspace_knowledge_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(), ) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(DocumentSerializers.Batch( @@ -308,8 +308,8 @@ class DocumentView(APIView): tags=[_('Knowledge Base/Documentation')] # type: ignore ) @has_permissions( - PermissionConstants.KNOWLEDGE_DOCUMENT_DELETE.get_workspace_permission(), - PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_DELETE.get_workspace_knowledge_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(), ) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(DocumentSerializers.Batch( @@ -329,8 +329,8 @@ class DocumentView(APIView): tags=[_('Knowledge Base/Documentation')] # type: ignore ) @has_permissions( - PermissionConstants.KNOWLEDGE_DOCUMENT_VECTOR.get_workspace_permission(), - PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_VECTOR.get_workspace_knowledge_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(), ) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success( @@ -352,8 +352,8 @@ class DocumentView(APIView): tags=[_('Knowledge Base/Documentation')] # type: ignore ) @has_permissions( - PermissionConstants.KNOWLEDGE_DOCUMENT_GENERATE.get_workspace_permission(), - PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_GENERATE.get_workspace_knowledge_permission(), + PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(), ) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(DocumentSerializers.BatchGenerateRelated( @@ -372,7 +372,7 @@ class DocumentView(APIView): responses=DocumentTreeReadAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, current_page: int, page_size: int): return result.success(DocumentSerializers.Query( data={ @@ -395,7 +395,7 @@ class DocumentView(APIView): responses=DocumentExportAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EXPORT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EXPORT.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return DocumentSerializers.Operate(data={ 'workspace_id': workspace_id, 'document_id': document_id, 'knowledge_id': knowledge_id @@ -411,7 +411,7 @@ class DocumentView(APIView): responses=DocumentExportAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EXPORT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EXPORT.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return DocumentSerializers.Operate(data={ 'workspace_id': workspace_id, 'document_id': document_id, 'knowledge_id': knowledge_id @@ -427,7 +427,7 @@ class DocumentView(APIView): responses=DocumentDownloadSourceAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_DOWNLOAD_RAW.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_DOWNLOAD_RAW.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return DocumentSerializers.Operate(data={ 'workspace_id': workspace_id, 'document_id': document_id, 'knowledge_id': knowledge_id @@ -444,7 +444,7 @@ class DocumentView(APIView): responses=DocumentMigrateAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_MIGRATE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_MIGRATE.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id, knowledge_id: str, target_knowledge_id: str): return result.success(DocumentSerializers.Migrate( data={ @@ -468,7 +468,7 @@ class WebDocumentView(APIView): responses=WebDocumentCreateAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission()) def post(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(DocumentSerializers.Create(data={ 'knowledge_id': knowledge_id, 'workspace_id': workspace_id @@ -488,7 +488,7 @@ class QaDocumentView(APIView): responses=QaDocumentCreateAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission()) def post(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(DocumentSerializers.Create(data={ 'knowledge_id': knowledge_id, 'workspace_id': workspace_id @@ -508,7 +508,7 @@ class TableDocumentView(APIView): responses=TableDocumentCreateAPI.get_response(), tags=[_('Knowledge Base/Documentation')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission()) def post(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(DocumentSerializers.Create( data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id} diff --git a/apps/knowledge/views/knowledge.py b/apps/knowledge/views/knowledge.py index 50510116..f2fe5225 100644 --- a/apps/knowledge/views/knowledge.py +++ b/apps/knowledge/views/knowledge.py @@ -51,7 +51,7 @@ class KnowledgeView(APIView): responses=KnowledgeEditAPI.get_response(), tags=[_('Knowledge Base')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(KnowledgeSerializer.Operate( data={'user_id': request.user.id, 'workspace_id': workspace_id, 'knowledge_id': knowledge_id} @@ -67,7 +67,7 @@ class KnowledgeView(APIView): responses=KnowledgeBaseCreateAPI.get_response(), tags=[_('Knowledge Base')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DELETE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DELETE.get_workspace_knowledge_permission()) def delete(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(KnowledgeSerializer.Operate( data={'user_id': request.user.id, 'workspace_id': workspace_id, 'knowledge_id': knowledge_id} @@ -82,7 +82,7 @@ class KnowledgeView(APIView): responses=KnowledgeReadAPI.get_response(), tags=[_('Knowledge Base')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DELETE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_READ.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(KnowledgeSerializer.Operate( data={'user_id': request.user.id, 'workspace_id': workspace_id, 'knowledge_id': knowledge_id} @@ -100,7 +100,7 @@ class KnowledgeView(APIView): responses=KnowledgePageAPI.get_response(), tags=[_('Knowledge Base')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_READ.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_READ.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, current_page: int, page_size: int): return result.success(KnowledgeSerializer.Query( data={ @@ -125,7 +125,7 @@ class KnowledgeView(APIView): responses=SyncWebAPI.get_response(), tags=[_('Knowledge Base')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_SYNC.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_SYNC.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(KnowledgeSerializer.SyncWeb( data={ @@ -149,7 +149,7 @@ class KnowledgeView(APIView): responses=HitTestAPI.get_response(), tags=[_('Knowledge Base')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(KnowledgeSerializer.HitTest( data={ @@ -176,7 +176,7 @@ class KnowledgeView(APIView): responses=EmbeddingAPI.get_response(), tags=[_('Knowledge Base')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_VECTOR.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_VECTOR.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(KnowledgeSerializer.Operate( data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id, 'user_id': request.user.id} @@ -192,7 +192,7 @@ class KnowledgeView(APIView): responses=KnowledgeExportAPI.get_response(), tags=[_('Knowledge Base')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_EXPORT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_EXPORT.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str): return KnowledgeSerializer.Operate(data={ 'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'user_id': request.user.id @@ -208,7 +208,7 @@ class KnowledgeView(APIView): responses=KnowledgeExportAPI.get_response(), tags=[_('Knowledge Base')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_EXPORT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_EXPORT.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str): return KnowledgeSerializer.Operate(data={ 'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'user_id': request.user.id @@ -227,7 +227,7 @@ class KnowledgeView(APIView): responses=GenerateRelatedAPI.get_response(), tags=[_('Knowledge Base')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_GENERATE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_GENERATE.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(KnowledgeSerializer.Operate( data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id, 'user_id': request.user.id} diff --git a/apps/knowledge/views/paragraph.py b/apps/knowledge/views/paragraph.py index 8a2bae0b..e9573312 100644 --- a/apps/knowledge/views/paragraph.py +++ b/apps/knowledge/views/paragraph.py @@ -25,7 +25,7 @@ class ParagraphView(APIView): responses=ParagraphReadAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): q = ParagraphSerializers.Query( data={ @@ -46,7 +46,7 @@ class ParagraphView(APIView): responses=ParagraphCreateAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission()) def post(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return result.success(ParagraphSerializers.Create( data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'document_id': document_id} @@ -65,7 +65,7 @@ class ParagraphView(APIView): responses=ParagraphBatchDeleteAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return result.success(ParagraphSerializers.Batch( data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'document_id': document_id} @@ -82,7 +82,7 @@ class ParagraphView(APIView): responses=ParagraphMigrateAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_MIGRATE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_MIGRATE.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, target_knowledge_id: str, target_document_id): return result.success( @@ -108,7 +108,7 @@ class ParagraphView(APIView): responses=ParagraphBatchGenerateRelatedAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_GENERATE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_GENERATE.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return result.success(ParagraphSerializers.Batch( data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'document_id': document_id} @@ -127,7 +127,7 @@ class ParagraphView(APIView): responses=ParagraphEditAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str): o = ParagraphSerializers.Operate( data={ @@ -149,7 +149,7 @@ class ParagraphView(APIView): responses=ParagraphGetAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str): o = ParagraphSerializers.Operate( data={ @@ -170,7 +170,7 @@ class ParagraphView(APIView): parameters=ParagraphGetAPI.get_parameters(), responses=ParagraphGetAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')]) # type: ignore - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def delete(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str): o = ParagraphSerializers.Operate( data={ @@ -196,7 +196,7 @@ class ParagraphView(APIView): responses=ProblemCreateAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def post(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str): return result.success(ParagraphSerializers.Problem( data={ @@ -216,7 +216,7 @@ class ParagraphView(APIView): responses=ParagraphGetAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str): return result.success(ParagraphSerializers.Problem( data={ @@ -240,7 +240,7 @@ class ParagraphView(APIView): responses=UnAssociationAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return result.success(ParagraphSerializers.Association( data={ @@ -265,7 +265,7 @@ class ParagraphView(APIView): responses=AssociationAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str): return result.success(ParagraphSerializers.Association( data={ @@ -289,7 +289,7 @@ class ParagraphView(APIView): responses=ParagraphPageAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, current_page: int, page_size: int): d = ParagraphSerializers.Query( diff --git a/apps/knowledge/views/problem.py b/apps/knowledge/views/problem.py index 6ca07eb1..92dc3e92 100644 --- a/apps/knowledge/views/problem.py +++ b/apps/knowledge/views/problem.py @@ -25,7 +25,7 @@ class ProblemView(APIView): responses=ProblemReadAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_READ.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_READ.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str): q = ProblemSerializers.Query( data={ @@ -47,7 +47,7 @@ class ProblemView(APIView): request=ProblemBatchCreateAPI.get_request(), tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission()) def post(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(ProblemSerializers.Create( data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id} @@ -64,7 +64,7 @@ class ProblemView(APIView): responses=ProblemParagraphAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, problem_id: str): return result.success(ProblemSerializers.Operate( data={ @@ -87,7 +87,7 @@ class ProblemView(APIView): responses=BatchAssociationAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(ProblemSerializers.BatchOperate( data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id} @@ -106,7 +106,7 @@ class ProblemView(APIView): responses=BatchDeleteAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str): return result.success(ProblemSerializers.BatchOperate( data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id} @@ -124,7 +124,7 @@ class ProblemView(APIView): responses=ProblemDeleteAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_DELETE.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_DELETE.get_workspace_knowledge_permission()) def delete(self, request: Request, workspace_id: str, knowledge_id: str, problem_id: str): return result.success(ProblemSerializers.Operate( data={ @@ -145,7 +145,7 @@ class ProblemView(APIView): responses=ProblemEditAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission()) def put(self, request: Request, workspace_id: str, knowledge_id: str, problem_id: str): return result.success(ProblemSerializers.Operate( data={ @@ -167,7 +167,7 @@ class ProblemView(APIView): responses=ProblemPageAPI.get_response(), tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore ) - @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_READ.get_workspace_permission()) + @has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_READ.get_workspace_knowledge_permission()) def get(self, request: Request, workspace_id: str, knowledge_id: str, current_page, page_size): d = ProblemSerializers.Query( data={ diff --git a/apps/tools/views/tool.py b/apps/tools/views/tool.py index 14123dc5..39a0e0d2 100644 --- a/apps/tools/views/tool.py +++ b/apps/tools/views/tool.py @@ -188,7 +188,10 @@ class ToolView(APIView): parameters=PylintAPI.get_parameters(), tags=[_('Tool')] # type: ignore ) - @has_permissions(PermissionConstants.TOOL_EXPORT.get_workspace_permission()) + @has_permissions( + PermissionConstants.TOOL_CREATE.get_workspace_permission(), + PermissionConstants.TOOL_EDIT.get_workspace_permission(), + ) def post(self, request: Request, workspace_id: str): return result.success(ToolSerializer.Pylint( data={'workspace_id': workspace_id}