feat: add shared document and paragraph views with related permissions
This commit is contained in:
parent
66d4b6c81a
commit
2fccb9db67
@ -772,6 +772,62 @@ class PermissionConstants(Enum):
|
|||||||
group=Group.KNOWLEDGE, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
|
group=Group.KNOWLEDGE, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
|
||||||
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
)
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_READ = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_CREATE = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_EDIT = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_DELETE = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_SYNC = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.SYNC, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_VECTOR = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.VECTOR, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_GENERATE = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.GENERATE, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_MIGRATE = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.MIGRATE, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_EXPORT = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE = Permission(
|
||||||
|
group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_PROBLEM_READ = Permission(
|
||||||
|
group=Group.KNOWLEDGE_PROBLEM, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_PROBLEM_CREATE = Permission(
|
||||||
|
group=Group.KNOWLEDGE_PROBLEM, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_PROBLEM_EDIT = Permission(
|
||||||
|
group=Group.KNOWLEDGE_PROBLEM, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
SHARED_KNOWLEDGE_PROBLEM_DELETE = Permission(
|
||||||
|
group=Group.KNOWLEDGE_PROBLEM, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
|
||||||
|
parent_group=[SystemGroup.SHARED_KNOWLEDGE]
|
||||||
|
)
|
||||||
|
|
||||||
def get_workspace_application_permission(self):
|
def get_workspace_application_permission(self):
|
||||||
return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,
|
return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,
|
||||||
|
|||||||
@ -30,7 +30,7 @@ urlpatterns = [
|
|||||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_hit_handling', views.DocumentView.BatchEditHitHandling.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/batch_hit_handling', views.DocumentView.BatchEditHitHandling.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/template/export', views.Template.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/template/export', views.Template.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/table_template/export', views.TableTemplate.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/table_template/export', views.TableTemplate.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/migrate/target_knowledge_id', views.DocumentView.Migrate.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/migrate/<str:target_knowledge_id>', views.DocumentView.Migrate.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>', views.DocumentView.Operate.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>', views.DocumentView.Operate.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/sync', views.DocumentView.SyncWeb.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/sync', views.DocumentView.SyncWeb.as_view()),
|
||||||
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/refresh', views.DocumentView.Refresh.as_view()),
|
path('workspace/<str:workspace_id>/knowledge/<str:knowledge_id>/document/<str:document_id>/refresh', views.DocumentView.Refresh.as_view()),
|
||||||
|
|||||||
@ -51,7 +51,7 @@ class ProblemView(APIView):
|
|||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
||||||
@log(menu='problem', operate='Create question',
|
@log(menu='problem', operate='Create question',
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('dataset_id'))
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_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(
|
||||||
@ -94,7 +94,7 @@ class ProblemView(APIView):
|
|||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
||||||
@log(menu='problem', operate='Batch associated paragraphs',
|
@log(menu='problem', operate='Batch associated paragraphs',
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('dataset_id')))
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_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,7 +115,7 @@ class ProblemView(APIView):
|
|||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
||||||
@log(menu='problem', operate='Batch deletion issues',
|
@log(menu='problem', operate='Batch deletion issues',
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('dataset_id')))
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_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}
|
||||||
@ -135,7 +135,7 @@ class ProblemView(APIView):
|
|||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_DELETE.get_workspace_knowledge_permission())
|
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_DELETE.get_workspace_knowledge_permission())
|
||||||
@log(menu='problem', operate='Delete question',
|
@log(menu='problem', operate='Delete question',
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('dataset_id')))
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_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={
|
||||||
@ -158,7 +158,7 @@ class ProblemView(APIView):
|
|||||||
)
|
)
|
||||||
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
@has_permissions(PermissionConstants.KNOWLEDGE_PROBLEM_EDIT.get_workspace_knowledge_permission())
|
||||||
@log(menu='problem', operate='Modify question',
|
@log(menu='problem', operate='Modify question',
|
||||||
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('dataset_id')))
|
get_operation_object=lambda r, keywords: get_knowledge_operation_object(keywords.get('knowledge_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={
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user