feat: update permission checks to use workspace knowledge permissions for document and knowledge operations

This commit is contained in:
CaptainB 2025-06-05 10:12:59 +08:00
parent 74ce98c39b
commit 6cb3ae74d9
5 changed files with 65 additions and 62 deletions

View File

@ -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}

View File

@ -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}

View File

@ -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(

View File

@ -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={

View File

@ -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}