feat: enhance permission checks by incorporating role constants for workspace management
This commit is contained in:
parent
874dd34cba
commit
ba0dcf6b1b
@ -6,7 +6,7 @@ from rest_framework.views import APIView
|
|||||||
|
|
||||||
from common.auth import TokenAuth
|
from common.auth import TokenAuth
|
||||||
from common.auth.authentication import has_permissions
|
from common.auth.authentication import has_permissions
|
||||||
from common.constants.permission_constants import Permission, Group, Operate
|
from common.constants.permission_constants import Permission, Group, Operate, RoleConstants
|
||||||
from common.log.log import log
|
from common.log.log import log
|
||||||
from common.result import result
|
from common.result import result
|
||||||
from folders.api.folder import FolderCreateAPI, FolderEditAPI, FolderReadAPI, FolderTreeReadAPI, FolderDeleteAPI
|
from folders.api.folder import FolderCreateAPI, FolderEditAPI, FolderReadAPI, FolderTreeReadAPI, FolderDeleteAPI
|
||||||
@ -36,12 +36,16 @@ class FolderView(APIView):
|
|||||||
responses=FolderCreateAPI.get_response(),
|
responses=FolderCreateAPI.get_response(),
|
||||||
tags=[_('Folder')] # type: ignore
|
tags=[_('Folder')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.CREATE,
|
@has_permissions(
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.CREATE,
|
||||||
@log(menu='folder', operate='Create folder',
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"),
|
||||||
get_operation_object=lambda r, k: {'name': r.data.get('name')},
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, k: k.get('workspace_id')
|
)
|
||||||
)
|
@log(
|
||||||
|
menu='folder', operate='Create folder',
|
||||||
|
get_operation_object=lambda r, k: {'name': r.data.get('name')},
|
||||||
|
workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def post(self, request: Request, workspace_id: str, source: str):
|
def post(self, request: Request, workspace_id: str, source: str):
|
||||||
return result.success(FolderSerializer.Create(
|
return result.success(FolderSerializer.Create(
|
||||||
data={'user_id': request.user.id,
|
data={'user_id': request.user.id,
|
||||||
@ -58,8 +62,11 @@ class FolderView(APIView):
|
|||||||
responses=FolderTreeReadAPI.get_response(),
|
responses=FolderTreeReadAPI.get_response(),
|
||||||
tags=[_('Folder')] # type: ignore
|
tags=[_('Folder')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.READ,
|
@has_permissions(
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.READ,
|
||||||
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, source: str):
|
def get(self, request: Request, workspace_id: str, source: str):
|
||||||
return result.success(FolderTreeSerializer(
|
return result.success(FolderTreeSerializer(
|
||||||
data={'workspace_id': workspace_id, 'source': source}
|
data={'workspace_id': workspace_id, 'source': source}
|
||||||
@ -78,12 +85,16 @@ class FolderView(APIView):
|
|||||||
responses=FolderEditAPI.get_response(),
|
responses=FolderEditAPI.get_response(),
|
||||||
tags=[_('Folder')] # type: ignore
|
tags=[_('Folder')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.EDIT,
|
@has_permissions(
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.EDIT,
|
||||||
@log(menu='folder', operate='Edit folder',
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"),
|
||||||
get_operation_object=lambda r, k: get_folder_operation_object(k.get('folder_id'), k.get('source')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, k: k.get('workspace_id')
|
)
|
||||||
)
|
@log(
|
||||||
|
menu='folder', operate='Edit folder',
|
||||||
|
get_operation_object=lambda r, k: get_folder_operation_object(k.get('folder_id'), k.get('source')),
|
||||||
|
workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, source: str, folder_id: str):
|
def put(self, request: Request, workspace_id: str, source: str, folder_id: str):
|
||||||
return result.success(FolderSerializer.Operate(
|
return result.success(FolderSerializer.Operate(
|
||||||
data={'id': folder_id, 'workspace_id': workspace_id, 'source': source}
|
data={'id': folder_id, 'workspace_id': workspace_id, 'source': source}
|
||||||
@ -98,8 +109,11 @@ class FolderView(APIView):
|
|||||||
responses=FolderReadAPI.get_response(),
|
responses=FolderReadAPI.get_response(),
|
||||||
tags=[_('Folder')] # type: ignore
|
tags=[_('Folder')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.READ,
|
@has_permissions(
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.READ,
|
||||||
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, source: str, folder_id: str):
|
def get(self, request: Request, workspace_id: str, source: str, folder_id: str):
|
||||||
return result.success(FolderSerializer.Operate(
|
return result.success(FolderSerializer.Operate(
|
||||||
data={'id': folder_id, 'workspace_id': workspace_id, 'source': source}
|
data={'id': folder_id, 'workspace_id': workspace_id, 'source': source}
|
||||||
@ -114,12 +128,16 @@ class FolderView(APIView):
|
|||||||
responses=FolderDeleteAPI.get_response(),
|
responses=FolderDeleteAPI.get_response(),
|
||||||
tags=[_('Folder')] # type: ignore
|
tags=[_('Folder')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.DELETE,
|
@has_permissions(
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.DELETE,
|
||||||
@log(menu='folder', operate='Delete folder',
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"),
|
||||||
get_operation_object=lambda r, k: get_folder_operation_object(k.get('folder_id'), k.get('source')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, k: k.get('workspace_id')
|
)
|
||||||
)
|
@log(
|
||||||
|
menu='folder', operate='Delete folder',
|
||||||
|
get_operation_object=lambda r, k: get_folder_operation_object(k.get('folder_id'), k.get('source')),
|
||||||
|
workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def delete(self, request: Request, workspace_id: str, source: str, folder_id: str):
|
def delete(self, request: Request, workspace_id: str, source: str, folder_id: str):
|
||||||
return result.success(FolderSerializer.Operate(
|
return result.success(FolderSerializer.Operate(
|
||||||
data={'id': folder_id, 'workspace_id': workspace_id, 'source': source}
|
data={'id': folder_id, 'workspace_id': workspace_id, 'source': source}
|
||||||
|
|||||||
@ -6,7 +6,7 @@ from rest_framework.views import APIView
|
|||||||
|
|
||||||
from common.auth import TokenAuth
|
from common.auth import TokenAuth
|
||||||
from common.auth.authentication import has_permissions
|
from common.auth.authentication import has_permissions
|
||||||
from common.constants.permission_constants import PermissionConstants
|
from common.constants.permission_constants import PermissionConstants, RoleConstants
|
||||||
from common.log.log import log
|
from common.log.log import log
|
||||||
from common.result import result
|
from common.result import result
|
||||||
from knowledge.api.document import DocumentSplitAPI, DocumentBatchAPI, DocumentBatchCreateAPI, DocumentCreateAPI, \
|
from knowledge.api.document import DocumentSplitAPI, DocumentBatchAPI, DocumentBatchCreateAPI, DocumentCreateAPI, \
|
||||||
@ -33,7 +33,10 @@ class DocumentView(APIView):
|
|||||||
responses=DocumentCreateAPI.get_response(),
|
responses=DocumentCreateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
@log(menu='document', operate="Create document",
|
@log(menu='document', operate="Create document",
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
@ -53,7 +56,10 @@ class DocumentView(APIView):
|
|||||||
responses=DocumentTreeReadAPI.get_response(),
|
responses=DocumentTreeReadAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.Query(
|
return result.success(DocumentSerializers.Query(
|
||||||
data={
|
data={
|
||||||
@ -77,7 +83,10 @@ class DocumentView(APIView):
|
|||||||
responses=DocumentReadAPI.get_response(),
|
responses=DocumentReadAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
operate = DocumentSerializers.Operate(data={
|
operate = DocumentSerializers.Operate(data={
|
||||||
'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id
|
'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id
|
||||||
@ -94,13 +103,17 @@ class DocumentView(APIView):
|
|||||||
responses=DocumentEditAPI.get_response(),
|
responses=DocumentEditAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Modify document",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
menu='document', operate="Modify document",
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return result.success(DocumentSerializers.Operate(data={
|
return result.success(DocumentSerializers.Operate(data={
|
||||||
'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id
|
'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id
|
||||||
@ -114,13 +127,17 @@ class DocumentView(APIView):
|
|||||||
responses=DocumentDeleteAPI.get_response(),
|
responses=DocumentDeleteAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_DELETE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Delete document",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_DELETE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
menu='document', operate="Delete document",
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def delete(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def delete(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
operate = DocumentSerializers.Operate(data={
|
operate = DocumentSerializers.Operate(data={
|
||||||
'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id
|
'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id
|
||||||
@ -145,6 +162,7 @@ class DocumentView(APIView):
|
|||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(),
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
)
|
)
|
||||||
def post(self, request: Request, workspace_id: str, knowledge_id: str):
|
def post(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
split_data = {'file': request.FILES.getlist('file')}
|
split_data = {'file': request.FILES.getlist('file')}
|
||||||
@ -190,12 +208,17 @@ class DocumentView(APIView):
|
|||||||
responses=BatchEditHitHandlingAPI.get_response(),
|
responses=BatchEditHitHandlingAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Modify document hit processing methods in batches",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object_batch(r.data.get('id_list'))),
|
@log(
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
menu='document', operate="Modify document hit processing methods in batches",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object_batch(r.data.get('id_list'))),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.Batch(
|
return result.success(DocumentSerializers.Batch(
|
||||||
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
||||||
@ -214,12 +237,17 @@ class DocumentView(APIView):
|
|||||||
responses=SyncWebAPI.get_response(),
|
responses=SyncWebAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_SYNC.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Synchronize web site types",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_SYNC.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
menu='document', operate="Synchronize web site types",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return result.success(DocumentSerializers.Sync(
|
return result.success(DocumentSerializers.Sync(
|
||||||
data={'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
data={'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
||||||
@ -238,13 +266,17 @@ class DocumentView(APIView):
|
|||||||
responses=RefreshAPI.get_response(),
|
responses=RefreshAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_VECTOR.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Refresh document vector library",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_VECTOR.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
menu='document', operate="Refresh document vector library",
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return result.success(DocumentSerializers.Operate(
|
return result.success(DocumentSerializers.Operate(
|
||||||
data={'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
data={'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
||||||
@ -262,12 +294,17 @@ class DocumentView(APIView):
|
|||||||
responses=CancelTaskAPI.get_response(),
|
responses=CancelTaskAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Cancel task",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
menu='document', operate="Cancel task",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return result.success(DocumentSerializers.Operate(
|
return result.success(DocumentSerializers.Operate(
|
||||||
data={'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
data={'document_id': document_id, 'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
||||||
@ -285,13 +322,17 @@ class DocumentView(APIView):
|
|||||||
responses=BatchCancelTaskAPI.get_response(),
|
responses=BatchCancelTaskAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Cancel tasks in batches",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object_batch(r.data.get('id_list'))
|
@log(
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
menu='document', operate="Cancel tasks in batches",
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object_batch(r.data.get('id_list'))
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.Batch(data={
|
return result.success(DocumentSerializers.Batch(data={
|
||||||
'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
||||||
@ -313,13 +354,15 @@ class DocumentView(APIView):
|
|||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(),
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
|
@log(
|
||||||
|
menu='document', operate="Create documents in batches",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
{'name': f'[{",".join([document.get("name") for document in r.data])}]',
|
||||||
|
'document_list': r.data}), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
)
|
)
|
||||||
@log(menu='document', operate="Create documents in batches",
|
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
|
||||||
{'name': f'[{",".join([document.get("name") for document in r.data])}]',
|
|
||||||
'document_list': r.data}), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
|
||||||
)
|
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.Batch(
|
return result.success(DocumentSerializers.Batch(
|
||||||
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
||||||
@ -341,13 +384,15 @@ class DocumentView(APIView):
|
|||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_SYNC.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_SYNC.get_workspace_knowledge_permission(),
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
|
@log(
|
||||||
|
menu='document', operate="Batch sync documents",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object_batch(r.data.get('id_list'))),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
)
|
)
|
||||||
@log(menu='document', operate="Batch sync documents",
|
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
|
||||||
get_document_operation_object_batch(r.data.get('id_list'))),
|
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
|
||||||
)
|
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.Batch(
|
return result.success(DocumentSerializers.Batch(
|
||||||
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
||||||
@ -369,12 +414,15 @@ class DocumentView(APIView):
|
|||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_DELETE.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_DELETE.get_workspace_knowledge_permission(),
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
|
@log(
|
||||||
|
menu='document', operate="Delete documents in batches",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object_batch(r.data.get('id_list'))),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
)
|
)
|
||||||
@log(menu='document', operate="Delete documents in batches",
|
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
|
||||||
get_document_operation_object_batch(r.data.get('id_list'))),
|
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.Batch(
|
return result.success(DocumentSerializers.Batch(
|
||||||
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
||||||
@ -395,13 +443,15 @@ class DocumentView(APIView):
|
|||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_VECTOR.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_VECTOR.get_workspace_knowledge_permission(),
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
|
@log(
|
||||||
|
menu='document', operate="Batch refresh document vector library",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object_batch(r.data.get('id_list'))
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
)
|
)
|
||||||
@log(menu='document', operate="Batch refresh document vector library",
|
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
|
||||||
get_document_operation_object_batch(r.data.get('id_list'))
|
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
|
||||||
)
|
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(
|
return result.success(
|
||||||
DocumentSerializers.Batch(
|
DocumentSerializers.Batch(
|
||||||
@ -424,13 +474,15 @@ class DocumentView(APIView):
|
|||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_GENERATE.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_GENERATE.get_workspace_knowledge_permission(),
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
|
@log(
|
||||||
|
menu='document', operate="Batch generate related documents",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object_batch(r.data.get('document_id_list'))
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
)
|
)
|
||||||
@log(menu='document', operate="Batch generate related documents",
|
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
|
||||||
get_document_operation_object_batch(r.data.get('document_id_list'))
|
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
|
||||||
)
|
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.BatchGenerateRelated(
|
return result.success(DocumentSerializers.BatchGenerateRelated(
|
||||||
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
||||||
@ -448,7 +500,10 @@ class DocumentView(APIView):
|
|||||||
responses=DocumentTreeReadAPI.get_response(),
|
responses=DocumentTreeReadAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, current_page: int, page_size: int):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, current_page: int, page_size: int):
|
||||||
return result.success(DocumentSerializers.Query(
|
return result.success(DocumentSerializers.Query(
|
||||||
data={
|
data={
|
||||||
@ -471,13 +526,17 @@ class DocumentView(APIView):
|
|||||||
responses=DocumentExportAPI.get_response(),
|
responses=DocumentExportAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EXPORT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Export document",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EXPORT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
menu='document', operate="Export document",
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return DocumentSerializers.Operate(data={
|
return DocumentSerializers.Operate(data={
|
||||||
'workspace_id': workspace_id, 'document_id': document_id, 'knowledge_id': knowledge_id
|
'workspace_id': workspace_id, 'document_id': document_id, 'knowledge_id': knowledge_id
|
||||||
@ -493,13 +552,17 @@ class DocumentView(APIView):
|
|||||||
responses=DocumentExportAPI.get_response(),
|
responses=DocumentExportAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EXPORT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Export Zip document",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EXPORT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
menu='document', operate="Export Zip document",
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return DocumentSerializers.Operate(data={
|
return DocumentSerializers.Operate(data={
|
||||||
'workspace_id': workspace_id, 'document_id': document_id, 'knowledge_id': knowledge_id
|
'workspace_id': workspace_id, 'document_id': document_id, 'knowledge_id': knowledge_id
|
||||||
@ -516,7 +579,9 @@ class DocumentView(APIView):
|
|||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE.get_workspace_knowledge_permission())
|
PermissionConstants.KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return DocumentSerializers.Operate(data={
|
return DocumentSerializers.Operate(data={
|
||||||
'workspace_id': workspace_id, 'document_id': document_id, 'knowledge_id': knowledge_id
|
'workspace_id': workspace_id, 'document_id': document_id, 'knowledge_id': knowledge_id
|
||||||
@ -533,13 +598,17 @@ class DocumentView(APIView):
|
|||||||
responses=DocumentMigrateAPI.get_response(),
|
responses=DocumentMigrateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_MIGRATE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Migrate documents in batches",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_MIGRATE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object_batch(r.data)
|
@log(
|
||||||
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
menu='document', operate="Migrate documents in batches",
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object_batch(r.data)
|
||||||
|
), workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id, knowledge_id: str, target_knowledge_id: str):
|
def put(self, request: Request, workspace_id, knowledge_id: str, target_knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.Migrate(
|
return result.success(DocumentSerializers.Migrate(
|
||||||
data={
|
data={
|
||||||
@ -563,13 +632,18 @@ class WebDocumentView(APIView):
|
|||||||
responses=WebDocumentCreateAPI.get_response(),
|
responses=WebDocumentCreateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Create Web site documents",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
{'name': f'[{",".join([url for url in r.data.get("source_url_list", [])])}]',
|
@log(
|
||||||
'document_list': [{'name': url} for url in r.data.get("source_url_list", [])]}),
|
menu='document', operate="Create Web site documents",
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
{'name': f'[{",".join([url for url in r.data.get("source_url_list", [])])}]',
|
||||||
|
'document_list': [{'name': url} for url in r.data.get("source_url_list", [])]}),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def post(self, request: Request, workspace_id: str, knowledge_id: str):
|
def post(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.Create(data={
|
return result.success(DocumentSerializers.Create(data={
|
||||||
'knowledge_id': knowledge_id, 'workspace_id': workspace_id
|
'knowledge_id': knowledge_id, 'workspace_id': workspace_id
|
||||||
@ -589,13 +663,18 @@ class QaDocumentView(APIView):
|
|||||||
responses=QaDocumentCreateAPI.get_response(),
|
responses=QaDocumentCreateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Import QA and create documentation",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
{'name': f'[{",".join([file.name for file in r.FILES.getlist("file")])}]',
|
@log(
|
||||||
'document_list': [{'name': file.name} for file in r.FILES.getlist("file")]}),
|
menu='document', operate="Import QA and create documentation",
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
{'name': f'[{",".join([file.name for file in r.FILES.getlist("file")])}]',
|
||||||
|
'document_list': [{'name': file.name} for file in r.FILES.getlist("file")]}),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def post(self, request: Request, workspace_id: str, knowledge_id: str):
|
def post(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.Create(data={
|
return result.success(DocumentSerializers.Create(data={
|
||||||
'knowledge_id': knowledge_id, 'workspace_id': workspace_id
|
'knowledge_id': knowledge_id, 'workspace_id': workspace_id
|
||||||
@ -615,13 +694,18 @@ class TableDocumentView(APIView):
|
|||||||
responses=TableDocumentCreateAPI.get_response(),
|
responses=TableDocumentCreateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
tags=[_('Knowledge Base/Documentation')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate="Import tables and create documents",
|
PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
{'name': f'[{",".join([file.name for file in r.FILES.getlist("file")])}]',
|
@log(
|
||||||
'document_list': [{'name': file.name} for file in r.FILES.getlist("file")]}),
|
menu='document', operate="Import tables and create documents",
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
{'name': f'[{",".join([file.name for file in r.FILES.getlist("file")])}]',
|
||||||
|
'document_list': [{'name': file.name} for file in r.FILES.getlist("file")]}),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def post(self, request: Request, workspace_id: str, knowledge_id: str):
|
def post(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(DocumentSerializers.Create(
|
return result.success(DocumentSerializers.Create(
|
||||||
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
||||||
|
|||||||
@ -5,7 +5,7 @@ from rest_framework.views import APIView
|
|||||||
|
|
||||||
from common.auth import TokenAuth
|
from common.auth import TokenAuth
|
||||||
from common.auth.authentication import has_permissions
|
from common.auth.authentication import has_permissions
|
||||||
from common.constants.permission_constants import PermissionConstants
|
from common.constants.permission_constants import PermissionConstants, RoleConstants
|
||||||
from common.log.log import log
|
from common.log.log import log
|
||||||
from common.result import result
|
from common.result import result
|
||||||
from knowledge.api.knowledge import KnowledgeBaseCreateAPI, KnowledgeWebCreateAPI, KnowledgeTreeReadAPI, \
|
from knowledge.api.knowledge import KnowledgeBaseCreateAPI, KnowledgeWebCreateAPI, KnowledgeTreeReadAPI, \
|
||||||
@ -28,7 +28,10 @@ class KnowledgeView(APIView):
|
|||||||
responses=KnowledgeTreeReadAPI.get_response(),
|
responses=KnowledgeTreeReadAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_READ.get_workspace_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_READ.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str):
|
def get(self, request: Request, workspace_id: str):
|
||||||
return result.success(KnowledgeSerializer.Query(
|
return result.success(KnowledgeSerializer.Query(
|
||||||
data={
|
data={
|
||||||
@ -53,10 +56,15 @@ class KnowledgeView(APIView):
|
|||||||
responses=KnowledgeEditAPI.get_response(),
|
responses=KnowledgeEditAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Knowledge Base', operate="Modify knowledge base information",
|
PermissionConstants.KNOWLEDGE_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='Knowledge Base', operate="Modify knowledge base information",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(KnowledgeSerializer.Operate(
|
return result.success(KnowledgeSerializer.Operate(
|
||||||
data={'user_id': request.user.id, 'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
data={'user_id': request.user.id, 'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
||||||
@ -72,10 +80,15 @@ class KnowledgeView(APIView):
|
|||||||
responses=KnowledgeBaseCreateAPI.get_response(),
|
responses=KnowledgeBaseCreateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DELETE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Knowledge Base', operate="Delete knowledge base",
|
PermissionConstants.KNOWLEDGE_DELETE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='Knowledge Base', operate="Delete knowledge base",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def delete(self, request: Request, workspace_id: str, knowledge_id: str):
|
def delete(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(KnowledgeSerializer.Operate(
|
return result.success(KnowledgeSerializer.Operate(
|
||||||
data={'user_id': request.user.id, 'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
data={'user_id': request.user.id, 'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
||||||
@ -90,7 +103,10 @@ class KnowledgeView(APIView):
|
|||||||
responses=KnowledgeReadAPI.get_response(),
|
responses=KnowledgeReadAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_READ.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_READ.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(KnowledgeSerializer.Operate(
|
return result.success(KnowledgeSerializer.Operate(
|
||||||
data={'user_id': request.user.id, 'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
data={'user_id': request.user.id, 'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
||||||
@ -108,7 +124,10 @@ class KnowledgeView(APIView):
|
|||||||
responses=KnowledgePageAPI.get_response(),
|
responses=KnowledgePageAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_READ.get_workspace_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_READ.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, current_page: int, page_size: int):
|
def get(self, request: Request, workspace_id: str, current_page: int, page_size: int):
|
||||||
return result.success(KnowledgeSerializer.Query(
|
return result.success(KnowledgeSerializer.Query(
|
||||||
data={
|
data={
|
||||||
@ -133,10 +152,15 @@ class KnowledgeView(APIView):
|
|||||||
responses=SyncWebAPI.get_response(),
|
responses=SyncWebAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_SYNC.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Knowledge Base', operate="Synchronize the knowledge base of the website",
|
PermissionConstants.KNOWLEDGE_SYNC.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='Knowledge Base', operate="Synchronize the knowledge base of the website",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(KnowledgeSerializer.SyncWeb(
|
return result.success(KnowledgeSerializer.SyncWeb(
|
||||||
data={
|
data={
|
||||||
@ -160,7 +184,10 @@ class KnowledgeView(APIView):
|
|||||||
responses=HitTestAPI.get_response(),
|
responses=HitTestAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(KnowledgeSerializer.HitTest(
|
return result.success(KnowledgeSerializer.HitTest(
|
||||||
data={
|
data={
|
||||||
@ -187,10 +214,15 @@ class KnowledgeView(APIView):
|
|||||||
responses=EmbeddingAPI.get_response(),
|
responses=EmbeddingAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_VECTOR.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Knowledge Base', operate='Re-vectorize',
|
PermissionConstants.KNOWLEDGE_VECTOR.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, k: get_knowledge_operation_object(k.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='Knowledge Base', operate='Re-vectorize',
|
||||||
|
get_operation_object=lambda r, k: get_knowledge_operation_object(k.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(KnowledgeSerializer.Operate(
|
return result.success(KnowledgeSerializer.Operate(
|
||||||
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id, 'user_id': request.user.id}
|
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id, 'user_id': request.user.id}
|
||||||
@ -206,10 +238,15 @@ class KnowledgeView(APIView):
|
|||||||
responses=KnowledgeExportAPI.get_response(),
|
responses=KnowledgeExportAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_EXPORT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Knowledge Base', operate="Export knowledge base",
|
PermissionConstants.KNOWLEDGE_EXPORT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='Knowledge Base', operate="Export knowledge base",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return KnowledgeSerializer.Operate(data={
|
return KnowledgeSerializer.Operate(data={
|
||||||
'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'user_id': request.user.id
|
'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'user_id': request.user.id
|
||||||
@ -225,10 +262,15 @@ class KnowledgeView(APIView):
|
|||||||
responses=KnowledgeExportAPI.get_response(),
|
responses=KnowledgeExportAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_EXPORT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Knowledge Base', operate="Export knowledge base containing images",
|
PermissionConstants.KNOWLEDGE_EXPORT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='Knowledge Base', operate="Export knowledge base containing images",
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return KnowledgeSerializer.Operate(data={
|
return KnowledgeSerializer.Operate(data={
|
||||||
'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'user_id': request.user.id
|
'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'user_id': request.user.id
|
||||||
@ -247,11 +289,15 @@ class KnowledgeView(APIView):
|
|||||||
responses=GenerateRelatedAPI.get_response(),
|
responses=GenerateRelatedAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_GENERATE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='document', operate='Generate related documents',
|
PermissionConstants.KNOWLEDGE_GENERATE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, k: get_knowledge_operation_object(k.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
)
|
||||||
)
|
@log(
|
||||||
|
menu='document', operate='Generate related documents',
|
||||||
|
get_operation_object=lambda r, k: get_knowledge_operation_object(k.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(KnowledgeSerializer.Operate(
|
return result.success(KnowledgeSerializer.Operate(
|
||||||
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id, 'user_id': request.user.id}
|
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id, 'user_id': request.user.id}
|
||||||
@ -269,7 +315,10 @@ class KnowledgeView(APIView):
|
|||||||
responses=GetModelAPI.get_response(),
|
responses=GetModelAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str):
|
def get(self, request: Request, workspace_id: str):
|
||||||
return result.success(ModelSerializer.Query(
|
return result.success(ModelSerializer.Query(
|
||||||
data={
|
data={
|
||||||
@ -290,7 +339,10 @@ class KnowledgeView(APIView):
|
|||||||
responses=GetModelAPI.get_response(),
|
responses=GetModelAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_EDIT.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str):
|
def get(self, request: Request, workspace_id: str):
|
||||||
return result.success(ModelSerializer.Query(
|
return result.success(ModelSerializer.Query(
|
||||||
data={
|
data={
|
||||||
@ -313,10 +365,15 @@ class KnowledgeBaseView(APIView):
|
|||||||
responses=KnowledgeBaseCreateAPI.get_response(),
|
responses=KnowledgeBaseCreateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_CREATE.get_workspace_permission())
|
@has_permissions(
|
||||||
@log(menu='knowledge Base', operate='Create base knowledge',
|
PermissionConstants.KNOWLEDGE_CREATE.get_workspace_permission(),
|
||||||
get_operation_object=lambda r, k: {'name': r.data.get('name'), 'desc': r.data.get('desc')},
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, keywords: keywords.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='knowledge Base', operate='Create base knowledge',
|
||||||
|
get_operation_object=lambda r, k: {'name': r.data.get('name'), 'desc': r.data.get('desc')},
|
||||||
|
workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
|
)
|
||||||
def post(self, request: Request, workspace_id: str):
|
def post(self, request: Request, workspace_id: str):
|
||||||
return result.success(KnowledgeSerializer.Create(
|
return result.success(KnowledgeSerializer.Create(
|
||||||
data={'user_id': request.user.id, 'workspace_id': workspace_id}
|
data={'user_id': request.user.id, 'workspace_id': workspace_id}
|
||||||
@ -336,15 +393,19 @@ class KnowledgeWebView(APIView):
|
|||||||
responses=KnowledgeWebCreateAPI.get_response(),
|
responses=KnowledgeWebCreateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base')] # type: ignore
|
tags=[_('Knowledge Base')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_CREATE.get_workspace_permission())
|
@has_permissions(
|
||||||
@log(menu='Knowledge Base', operate="Create a web site knowledge base",
|
PermissionConstants.KNOWLEDGE_CREATE.get_workspace_permission(),
|
||||||
get_operation_object=lambda r, k: {'name': r.data.get('name'), 'desc': r.data.get('desc'),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
'first_list': r.FILES.getlist('file'),
|
)
|
||||||
'meta': {'source_url': r.data.get('source_url'),
|
@log(
|
||||||
'selector': r.data.get('selector'),
|
menu='Knowledge Base', operate="Create a web site knowledge base",
|
||||||
'embedding_model_id': r.data.get('embedding_model_id')}}
|
get_operation_object=lambda r, k: {'name': r.data.get('name'), 'desc': r.data.get('desc'),
|
||||||
|
'first_list': r.FILES.getlist('file'),
|
||||||
|
'meta': {'source_url': r.data.get('source_url'),
|
||||||
|
'selector': r.data.get('selector'),
|
||||||
|
'embedding_model_id': r.data.get('embedding_model_id')}}
|
||||||
, workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
, workspace_id=lambda r, keywords: keywords.get('workspace_id')
|
||||||
)
|
)
|
||||||
def post(self, request: Request, workspace_id: str):
|
def post(self, request: Request, workspace_id: str):
|
||||||
return result.success(KnowledgeSerializer.Create(
|
return result.success(KnowledgeSerializer.Create(
|
||||||
data={'user_id': request.user.id, 'workspace_id': workspace_id}
|
data={'user_id': request.user.id, 'workspace_id': workspace_id}
|
||||||
|
|||||||
@ -5,7 +5,7 @@ from rest_framework.views import Request
|
|||||||
|
|
||||||
from common.auth import TokenAuth
|
from common.auth import TokenAuth
|
||||||
from common.auth.authentication import has_permissions
|
from common.auth.authentication import has_permissions
|
||||||
from common.constants.permission_constants import PermissionConstants
|
from common.constants.permission_constants import PermissionConstants, RoleConstants
|
||||||
from common.log.log import log
|
from common.log.log import log
|
||||||
from common.result import result
|
from common.result import result
|
||||||
from common.utils.common import query_params_to_single_dict
|
from common.utils.common import query_params_to_single_dict
|
||||||
@ -28,7 +28,10 @@ class ParagraphView(APIView):
|
|||||||
responses=ParagraphReadAPI.get_response(),
|
responses=ParagraphReadAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_DOCUMENT_READ.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
q = ParagraphSerializers.Query(
|
q = ParagraphSerializers.Query(
|
||||||
data={
|
data={
|
||||||
@ -49,13 +52,17 @@ class ParagraphView(APIView):
|
|||||||
responses=ParagraphCreateAPI.get_response(),
|
responses=ParagraphCreateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Paragraph', operate='Create Paragraph',
|
PermissionConstants.KNOWLEDGE_DOCUMENT_CREATE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, k: k.get('workspace_id')
|
menu='Paragraph', operate='Create Paragraph',
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def post(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def post(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return result.success(ParagraphSerializers.Create(
|
return result.success(ParagraphSerializers.Create(
|
||||||
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'document_id': document_id}
|
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'document_id': document_id}
|
||||||
@ -74,7 +81,10 @@ class ParagraphView(APIView):
|
|||||||
responses=ParagraphBatchDeleteAPI.get_response(),
|
responses=ParagraphBatchDeleteAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return result.success(ParagraphSerializers.Batch(
|
return result.success(ParagraphSerializers.Batch(
|
||||||
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'document_id': document_id}
|
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'document_id': document_id}
|
||||||
@ -91,13 +101,17 @@ class ParagraphView(APIView):
|
|||||||
responses=ParagraphMigrateAPI.get_response(),
|
responses=ParagraphMigrateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_MIGRATE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Paragraph', operate='Migrate paragraphs in batches',
|
PermissionConstants.KNOWLEDGE_DOCUMENT_MIGRATE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, k: k.get('workspace_id')
|
menu='Paragraph', operate='Migrate paragraphs in batches',
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str,
|
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str,
|
||||||
target_knowledge_id: str, target_document_id):
|
target_knowledge_id: str, target_document_id):
|
||||||
return result.success(
|
return result.success(
|
||||||
@ -123,13 +137,17 @@ class ParagraphView(APIView):
|
|||||||
responses=ParagraphBatchGenerateRelatedAPI.get_response(),
|
responses=ParagraphBatchGenerateRelatedAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_GENERATE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Paragraph', operate='Batch generate related',
|
PermissionConstants.KNOWLEDGE_DOCUMENT_GENERATE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, k: k.get('workspace_id')
|
menu='Paragraph', operate='Batch generate related',
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return result.success(ParagraphSerializers.Batch(
|
return result.success(ParagraphSerializers.Batch(
|
||||||
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'document_id': document_id}
|
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id, 'document_id': document_id}
|
||||||
@ -148,13 +166,17 @@ class ParagraphView(APIView):
|
|||||||
responses=ParagraphEditAPI.get_response(),
|
responses=ParagraphEditAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Paragraph', operate='Modify paragraph data',
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, k: k.get('workspace_id')
|
menu='Paragraph', operate='Modify paragraph data',
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str):
|
||||||
o = ParagraphSerializers.Operate(
|
o = ParagraphSerializers.Operate(
|
||||||
data={
|
data={
|
||||||
@ -176,7 +198,10 @@ class ParagraphView(APIView):
|
|||||||
responses=ParagraphGetAPI.get_response(),
|
responses=ParagraphGetAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str):
|
||||||
o = ParagraphSerializers.Operate(
|
o = ParagraphSerializers.Operate(
|
||||||
data={
|
data={
|
||||||
@ -197,13 +222,17 @@ class ParagraphView(APIView):
|
|||||||
parameters=ParagraphGetAPI.get_parameters(),
|
parameters=ParagraphGetAPI.get_parameters(),
|
||||||
responses=ParagraphGetAPI.get_response(),
|
responses=ParagraphGetAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')]) # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')]) # type: ignore
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Paragraph', operate='Delete paragraph',
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, k: k.get('workspace_id')
|
menu='Paragraph', operate='Delete paragraph',
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def delete(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str):
|
def delete(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str):
|
||||||
o = ParagraphSerializers.Operate(
|
o = ParagraphSerializers.Operate(
|
||||||
data={
|
data={
|
||||||
@ -229,13 +258,17 @@ class ParagraphView(APIView):
|
|||||||
responses=ProblemCreateAPI.get_response(),
|
responses=ProblemCreateAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Paragraph', operate='Add associated questions',
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, k: k.get('workspace_id')
|
menu='Paragraph', operate='Add associated questions',
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def post(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str):
|
def post(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str):
|
||||||
return result.success(ParagraphSerializers.Problem(
|
return result.success(ParagraphSerializers.Problem(
|
||||||
data={
|
data={
|
||||||
@ -255,7 +288,10 @@ class ParagraphView(APIView):
|
|||||||
responses=ParagraphGetAPI.get_response(),
|
responses=ParagraphGetAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str, paragraph_id: str):
|
||||||
return result.success(ParagraphSerializers.Problem(
|
return result.success(ParagraphSerializers.Problem(
|
||||||
data={
|
data={
|
||||||
@ -279,13 +315,17 @@ class ParagraphView(APIView):
|
|||||||
responses=UnAssociationAPI.get_response(),
|
responses=UnAssociationAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Paragraph', operate='Disassociation issue',
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
)
|
menu='Paragraph', operate='Disassociation issue',
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
)
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return result.success(ParagraphSerializers.Association(
|
return result.success(ParagraphSerializers.Association(
|
||||||
data={
|
data={
|
||||||
@ -310,13 +350,17 @@ class ParagraphView(APIView):
|
|||||||
responses=AssociationAPI.get_response(),
|
responses=AssociationAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='Paragraph', operate='Related questions',
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
)
|
||||||
get_document_operation_object(keywords.get('document_id'))
|
@log(
|
||||||
), workspace_id=lambda r, k: k.get('workspace_id')
|
menu='Paragraph', operate='Related questions',
|
||||||
)
|
get_operation_object=lambda r, keywords: get_knowledge_document_operation_object(
|
||||||
|
get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
get_document_operation_object(keywords.get('document_id'))
|
||||||
|
), workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str, document_id: str):
|
||||||
return result.success(ParagraphSerializers.Association(
|
return result.success(ParagraphSerializers.Association(
|
||||||
data={
|
data={
|
||||||
@ -340,7 +384,10 @@ class ParagraphView(APIView):
|
|||||||
responses=ParagraphPageAPI.get_response(),
|
responses=ParagraphPageAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_DOCUMENT_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request,
|
def get(self, request: Request,
|
||||||
workspace_id: str, knowledge_id: str, document_id: str, current_page: int, page_size: int):
|
workspace_id: str, knowledge_id: str, document_id: str, current_page: int, page_size: int):
|
||||||
d = ParagraphSerializers.Query(
|
d = ParagraphSerializers.Query(
|
||||||
|
|||||||
@ -5,7 +5,7 @@ from rest_framework.views import Request
|
|||||||
|
|
||||||
from common.auth import TokenAuth
|
from common.auth import TokenAuth
|
||||||
from common.auth.authentication import has_permissions
|
from common.auth.authentication import has_permissions
|
||||||
from common.constants.permission_constants import PermissionConstants
|
from common.constants.permission_constants import PermissionConstants, RoleConstants
|
||||||
from common.log.log import log
|
from common.log.log import log
|
||||||
from common.result import result
|
from common.result import result
|
||||||
from common.utils.common import query_params_to_single_dict
|
from common.utils.common import query_params_to_single_dict
|
||||||
@ -27,7 +27,10 @@ class ProblemView(APIView):
|
|||||||
responses=ProblemReadAPI.get_response(),
|
responses=ProblemReadAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_READ.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_PROBLEM_READ.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
q = ProblemSerializers.Query(
|
q = ProblemSerializers.Query(
|
||||||
data={
|
data={
|
||||||
@ -49,11 +52,15 @@ class ProblemView(APIView):
|
|||||||
request=ProblemBatchCreateAPI.get_request(),
|
request=ProblemBatchCreateAPI.get_request(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='problem', operate='Create question',
|
PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id'))
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
|
@log(
|
||||||
|
menu='problem', operate='Create question',
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id'))
|
||||||
, workspace_id=lambda r, k: k.get('workspace_id')
|
, workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
)
|
)
|
||||||
def post(self, request: Request, workspace_id: str, knowledge_id: str):
|
def post(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(ProblemSerializers.Create(
|
return result.success(ProblemSerializers.Create(
|
||||||
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
data={'workspace_id': workspace_id, 'knowledge_id': knowledge_id}
|
||||||
@ -70,7 +77,10 @@ class ProblemView(APIView):
|
|||||||
responses=ProblemParagraphAPI.get_response(),
|
responses=ProblemParagraphAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, problem_id: str):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, problem_id: str):
|
||||||
return result.success(ProblemSerializers.Operate(
|
return result.success(ProblemSerializers.Operate(
|
||||||
data={
|
data={
|
||||||
@ -93,10 +103,15 @@ class ProblemView(APIView):
|
|||||||
responses=BatchAssociationAPI.get_response(),
|
responses=BatchAssociationAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='problem', operate='Batch associated paragraphs',
|
PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, k: k.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='problem', operate='Batch associated paragraphs',
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(ProblemSerializers.BatchOperate(
|
return result.success(ProblemSerializers.BatchOperate(
|
||||||
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
||||||
@ -115,10 +130,15 @@ class ProblemView(APIView):
|
|||||||
responses=BatchDeleteAPI.get_response(),
|
responses=BatchDeleteAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='problem', operate='Batch deletion issues',
|
PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, k: k.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='problem', operate='Batch deletion issues',
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str):
|
||||||
return result.success(ProblemSerializers.BatchOperate(
|
return result.success(ProblemSerializers.BatchOperate(
|
||||||
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id}
|
||||||
@ -136,10 +156,15 @@ class ProblemView(APIView):
|
|||||||
responses=ProblemDeleteAPI.get_response(),
|
responses=ProblemDeleteAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_DELETE.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='problem', operate='Delete question',
|
PermissionConstants.KNOWLEDGE_PROBLEM_DELETE.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, k: k.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='problem', operate='Delete question',
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def delete(self, request: Request, workspace_id: str, knowledge_id: str, problem_id: str):
|
def delete(self, request: Request, workspace_id: str, knowledge_id: str, problem_id: str):
|
||||||
return result.success(ProblemSerializers.Operate(
|
return result.success(ProblemSerializers.Operate(
|
||||||
data={
|
data={
|
||||||
@ -160,10 +185,15 @@ class ProblemView(APIView):
|
|||||||
responses=ProblemEditAPI.get_response(),
|
responses=ProblemEditAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
@log(menu='problem', operate='Modify question',
|
PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission(),
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, k: k.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='problem', operate='Modify question',
|
||||||
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_id')),
|
||||||
|
workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, knowledge_id: str, problem_id: str):
|
def put(self, request: Request, workspace_id: str, knowledge_id: str, problem_id: str):
|
||||||
return result.success(ProblemSerializers.Operate(
|
return result.success(ProblemSerializers.Operate(
|
||||||
data={
|
data={
|
||||||
@ -185,7 +215,10 @@ class ProblemView(APIView):
|
|||||||
responses=ProblemPageAPI.get_response(),
|
responses=ProblemPageAPI.get_response(),
|
||||||
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
tags=[_('Knowledge Base/Documentation/Paragraph/Question')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_READ.get_workspace_knowledge_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.KNOWLEDGE_PROBLEM_READ.get_workspace_knowledge_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str, knowledge_id: str, current_page, page_size):
|
def get(self, request: Request, workspace_id: str, knowledge_id: str, current_page, page_size):
|
||||||
d = ProblemSerializers.Query(
|
d = ProblemSerializers.Query(
|
||||||
data={
|
data={
|
||||||
|
|||||||
@ -7,7 +7,7 @@ from rest_framework.views import APIView
|
|||||||
|
|
||||||
from common.auth import TokenAuth
|
from common.auth import TokenAuth
|
||||||
from common.auth.authentication import has_permissions
|
from common.auth.authentication import has_permissions
|
||||||
from common.constants.permission_constants import PermissionConstants
|
from common.constants.permission_constants import PermissionConstants, RoleConstants
|
||||||
from common.log.log import log
|
from common.log.log import log
|
||||||
from common.result import result
|
from common.result import result
|
||||||
from tools.api.tool import ToolCreateAPI, ToolEditAPI, ToolReadAPI, ToolDeleteAPI, ToolTreeReadAPI, ToolDebugApi, \
|
from tools.api.tool import ToolCreateAPI, ToolEditAPI, ToolReadAPI, ToolDeleteAPI, ToolTreeReadAPI, ToolDebugApi, \
|
||||||
@ -38,9 +38,14 @@ class ToolView(APIView):
|
|||||||
responses=ToolCreateAPI.get_response(),
|
responses=ToolCreateAPI.get_response(),
|
||||||
tags=[_('Tool')] # type: ignore
|
tags=[_('Tool')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.TOOL_CREATE.get_workspace_permission())
|
@has_permissions(
|
||||||
@log(menu="Tool", operate="Create tool",
|
PermissionConstants.TOOL_CREATE.get_workspace_permission(),
|
||||||
get_operation_object=lambda r, k: r.data.get('name'), workspace_id=lambda r, k: k.get('workspace_id'))
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
|
@log(
|
||||||
|
menu="Tool", operate="Create tool",
|
||||||
|
get_operation_object=lambda r, k: r.data.get('name'), workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def post(self, request: Request, workspace_id: str):
|
def post(self, request: Request, workspace_id: str):
|
||||||
return result.success(ToolSerializer.Create(
|
return result.success(ToolSerializer.Create(
|
||||||
data={'user_id': request.user.id, 'workspace_id': workspace_id}
|
data={'user_id': request.user.id, 'workspace_id': workspace_id}
|
||||||
@ -55,7 +60,10 @@ class ToolView(APIView):
|
|||||||
responses=ToolTreeReadAPI.get_response(),
|
responses=ToolTreeReadAPI.get_response(),
|
||||||
tags=[_('Tool')] # type: ignore
|
tags=[_('Tool')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.TOOL_READ.get_workspace_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.TOOL_READ.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def get(self, request: Request, workspace_id: str):
|
def get(self, request: Request, workspace_id: str):
|
||||||
return result.success(ToolTreeSerializer(
|
return result.success(ToolTreeSerializer(
|
||||||
data={'workspace_id': workspace_id}
|
data={'workspace_id': workspace_id}
|
||||||
@ -73,7 +81,10 @@ class ToolView(APIView):
|
|||||||
responses=ToolDebugApi.get_response(),
|
responses=ToolDebugApi.get_response(),
|
||||||
tags=[_('Tool')] # type: ignore
|
tags=[_('Tool')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.TOOL_DEBUG.get_workspace_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.TOOL_DEBUG.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def post(self, request: Request, workspace_id: str):
|
def post(self, request: Request, workspace_id: str):
|
||||||
return result.success(ToolSerializer.Debug(
|
return result.success(ToolSerializer.Debug(
|
||||||
data={'workspace_id': workspace_id, 'user_id': request.user.id}
|
data={'workspace_id': workspace_id, 'user_id': request.user.id}
|
||||||
@ -92,10 +103,15 @@ class ToolView(APIView):
|
|||||||
responses=ToolEditAPI.get_response(),
|
responses=ToolEditAPI.get_response(),
|
||||||
tags=[_('Tool')] # type: ignore
|
tags=[_('Tool')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.TOOL_EDIT.get_workspace_permission())
|
@has_permissions(
|
||||||
@log(menu='Tool', operate='Update tool',
|
PermissionConstants.TOOL_EDIT.get_workspace_permission(),
|
||||||
get_operation_object=lambda r, k: get_tool_operation_object(k.get('tool_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, k: k.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='Tool', operate='Update tool',
|
||||||
|
get_operation_object=lambda r, k: get_tool_operation_object(k.get('tool_id')),
|
||||||
|
workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def put(self, request: Request, workspace_id: str, tool_id: str):
|
def put(self, request: Request, workspace_id: str, tool_id: str):
|
||||||
return result.success(ToolSerializer.Operate(
|
return result.success(ToolSerializer.Operate(
|
||||||
data={'id': tool_id, 'workspace_id': workspace_id}
|
data={'id': tool_id, 'workspace_id': workspace_id}
|
||||||
@ -110,7 +126,10 @@ class ToolView(APIView):
|
|||||||
responses=ToolReadAPI.get_response(),
|
responses=ToolReadAPI.get_response(),
|
||||||
tags=[_('Tool')] # type: ignore
|
tags=[_('Tool')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.TOOL_READ.get_workspace_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.TOOL_READ.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
@log(menu='Tool', operate='Get tool')
|
@log(menu='Tool', operate='Get tool')
|
||||||
def get(self, request: Request, workspace_id: str, tool_id: str):
|
def get(self, request: Request, workspace_id: str, tool_id: str):
|
||||||
return result.success(ToolSerializer.Operate(
|
return result.success(ToolSerializer.Operate(
|
||||||
@ -126,10 +145,15 @@ class ToolView(APIView):
|
|||||||
responses=ToolDeleteAPI.get_response(),
|
responses=ToolDeleteAPI.get_response(),
|
||||||
tags=[_('Tool')] # type: ignore
|
tags=[_('Tool')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.TOOL_DELETE.get_workspace_permission())
|
@has_permissions(
|
||||||
@log(menu='Tool', operate="Delete tool",
|
PermissionConstants.TOOL_DELETE.get_workspace_permission(),
|
||||||
get_operation_object=lambda r, k: get_tool_operation_object(k.get('tool_id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, k: k.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='Tool', operate="Delete tool",
|
||||||
|
get_operation_object=lambda r, k: get_tool_operation_object(k.get('tool_id')),
|
||||||
|
workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def delete(self, request: Request, workspace_id: str, tool_id: str):
|
def delete(self, request: Request, workspace_id: str, tool_id: str):
|
||||||
return result.success(ToolSerializer.Operate(
|
return result.success(ToolSerializer.Operate(
|
||||||
data={'id': tool_id, 'workspace_id': workspace_id}
|
data={'id': tool_id, 'workspace_id': workspace_id}
|
||||||
@ -147,7 +171,10 @@ class ToolView(APIView):
|
|||||||
responses=ToolPageAPI.get_response(),
|
responses=ToolPageAPI.get_response(),
|
||||||
tags=[_('Tool')] # type: ignore
|
tags=[_('Tool')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.TOOL_READ.get_workspace_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.TOOL_READ.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
@log(menu='Tool', operate='Get tool list')
|
@log(menu='Tool', operate='Get tool list')
|
||||||
def get(self, request: Request, workspace_id: str, current_page: int, page_size: int):
|
def get(self, request: Request, workspace_id: str, current_page: int, page_size: int):
|
||||||
return result.success(ToolTreeSerializer.Query(
|
return result.success(ToolTreeSerializer.Query(
|
||||||
@ -173,7 +200,10 @@ class ToolView(APIView):
|
|||||||
responses=ToolImportAPI.get_response(),
|
responses=ToolImportAPI.get_response(),
|
||||||
tags=[_("Tool")] # type: ignore
|
tags=[_("Tool")] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.TOOL_IMPORT.get_workspace_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.TOOL_IMPORT.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
@log(menu='Tool', operate='Import tool', workspace_id=lambda r, k: k.get('workspace_id'))
|
@log(menu='Tool', operate='Import tool', workspace_id=lambda r, k: k.get('workspace_id'))
|
||||||
def post(self, request: Request, workspace_id: str):
|
def post(self, request: Request, workspace_id: str):
|
||||||
return result.success(ToolSerializer.Import(
|
return result.success(ToolSerializer.Import(
|
||||||
@ -192,10 +222,15 @@ class ToolView(APIView):
|
|||||||
responses=ToolExportAPI.get_response(),
|
responses=ToolExportAPI.get_response(),
|
||||||
tags=[_("Tool")] # type: ignore
|
tags=[_("Tool")] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.TOOL_EXPORT.get_workspace_permission())
|
@has_permissions(
|
||||||
@log(menu='Tool', operate="Export function",
|
PermissionConstants.TOOL_EXPORT.get_workspace_permission(),
|
||||||
get_operation_object=lambda r, k: get_tool_operation_object(k.get('id')),
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
workspace_id=lambda r, k: k.get('workspace_id'))
|
)
|
||||||
|
@log(
|
||||||
|
menu='Tool', operate="Export function",
|
||||||
|
get_operation_object=lambda r, k: get_tool_operation_object(k.get('id')),
|
||||||
|
workspace_id=lambda r, k: k.get('workspace_id')
|
||||||
|
)
|
||||||
def get(self, request: Request, tool_id: str, workspace_id: str):
|
def get(self, request: Request, tool_id: str, workspace_id: str):
|
||||||
return ToolSerializer.Operate(
|
return ToolSerializer.Operate(
|
||||||
data={'id': tool_id, 'workspace_id': workspace_id}
|
data={'id': tool_id, 'workspace_id': workspace_id}
|
||||||
@ -217,6 +252,7 @@ class ToolView(APIView):
|
|||||||
@has_permissions(
|
@has_permissions(
|
||||||
PermissionConstants.TOOL_CREATE.get_workspace_permission(),
|
PermissionConstants.TOOL_CREATE.get_workspace_permission(),
|
||||||
PermissionConstants.TOOL_EDIT.get_workspace_permission(),
|
PermissionConstants.TOOL_EDIT.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
)
|
)
|
||||||
def post(self, request: Request, workspace_id: str):
|
def post(self, request: Request, workspace_id: str):
|
||||||
return result.success(ToolSerializer.Pylint(
|
return result.success(ToolSerializer.Pylint(
|
||||||
@ -237,7 +273,10 @@ class ToolView(APIView):
|
|||||||
parameters=EditIconAPI.get_parameters(),
|
parameters=EditIconAPI.get_parameters(),
|
||||||
tags=[_('Tool')] # type: ignore
|
tags=[_('Tool')] # type: ignore
|
||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.TOOL_EDIT.get_workspace_permission())
|
@has_permissions(
|
||||||
|
PermissionConstants.TOOL_EDIT.get_workspace_permission(),
|
||||||
|
RoleConstants.WORKSPACE_MANAGE.get_workspace_role()
|
||||||
|
)
|
||||||
def put(self, request: Request, tool_id: str, workspace_id: str):
|
def put(self, request: Request, tool_id: str, workspace_id: str):
|
||||||
return result.success(ToolSerializer.IconOperate(data={
|
return result.success(ToolSerializer.IconOperate(data={
|
||||||
'id': tool_id,
|
'id': tool_id,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user